`
andy136566
  • 浏览: 290629 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

ajax学习

 
阅读更多

jquery库实现ajax

function verify(){
    //1、获取文本框内容
    //js方法
    //document.getElementById("userName")  获取dom方法
    //jquery方法,id的选择器(#),class选择器(.)
    //jquery的方法返回的都是jquery的对象,可以在它上面继续执行其他jquery方法
    var jqueryObj = $("#userName");
    var userName = jqueryObj.val();

    //2、传送数据到Server
    //jquery方法
    $.get("AjaxServer?name="+userName,null,callback) ;
}

//回调函数
function callback(data){
    //3、接受server数据

    //4、动态显示返回数据
    var resultObj = $("#result");
    resultObj.html(data);
}

 

 

使用XMLHttpReque来进行Ajax异步数据交互

 

//使用XMLHttpReque来进行Ajax异步数据交互
var xmlhttp;
function verify(){
    //1、使用dom方式获取文本框内容
    var userName = document.getElementById("userName").value;
    //2、创建XMLHttpRequest对象
    if(window.XMLHttpRequest){
        //针对firefox,safari、opera,IE7+
        xmlhttp = new XMLHttpRequest();
        //针对某些版本的Mozill的浏览器
        if(xmlhttp.overrideMimeType){
            xmlhttp.overrideMimeType("text/xml");
        }
    }   else if(window.ActiveXObject){
        // 针对IE5、IE6、IE5.5
        //两个可以用于创建XMLHttpRequest的空间名称
        var activeName = ["MSXML2.XMLHTTP","Microsoft.XMLHTTP"];
        for(var i=0;i<activeName.length; i++){
            try{
                xmlhttp = new ActiveXObject(activeName[i]);
                break;
            }catch(e){
            }
        }
    }
    if(!xmlhttp){
        alert("创建失败");
        return;
    }

    //3、注册回调函数
    //readystate一改变回调函数调用
    xmlhttp.onreadystatechange = callback;

    //4、设置连接信息
    xmlhttp.open("GET","AjaxServer?name="+userName,true);
    //POST请求方式的区别:设置http的请求头
    //xmlhttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
    //发送内容在send中


    //5、发送数据,与server交互
    //同步方式下,send这句会在服务器数据回来后才执行完
    //异步方式下,send这句立即执行完
    xmlhttp.send(null);
}

function callback(){
    //6、接收响应数据
    //判断对象的状态是否交互完成
    if(xmlhttp.readyState == 4){
        //判断http的交互是否成功
        if(xmlhttp.status == 200){
            var responseText = xmlhttp.responseText;
            var divNode = document.getElementById("result");
            divNode.innerHTML = responseText;
        }
    }
}

 

 

xml格式数据交互

var xmlhttp;
function verify() {
    var userName = document.getElementById("userName").value;
    if (window.XMLHttpRequest) {
        xmlhttp = new XMLHttpRequest();
        if (xmlhttp.overrideMimeType) {
            xmlhttp.overrideMimeType("text/xml");
        }
    } else if (window.ActiveXObject) {
        var activeName = ["MSXML2.XMLHTTP", "Microsoft.XMLHTTP"];
        for (var i = 0; i < activeName.length; i++) {
            try {
                xmlhttp = new ActiveXObject(activeName[i]);
                break;
            } catch (e) {
            }
        }
    }
    if (!xmlhttp) {
        alert("创建失败");
        return;
    }

    xmlhttp.onreadystatechange = callback;
    xmlhttp.open("GET", "AjaxXMLServlet?name=" + userName, true);
    xmlhttp.send(null);
}

function callback() {
    if (xmlhttp.readyState == 4) {
        if (xmlhttp.status == 200) {
            var domObj = xmlhttp.responseXML;
            if (domObj) {
                var messageNodes = domObj.getElementsByTagName("message");
                if (messageNodes.length > 0) {
                    var textNode = messageNodes[0].firstChild;
                    var responseMessage = textNode.nodeValue;
                    var divNode = document.getElementById("result");
                    divNode.innerHTML = responseMessage;
                } else {
                    alert("有问题了!" + xmlhttp.responseText);
                }
            } else {
                alert("有问题了!" + xmlhttp.responseText);
            }
        }
    }
}

 

jquery  xml格式数据交互

 

function verify(){
    var jqueryObj = $("#userName");
    var userName = jqueryObj.val();
    //javascript中一个简单对象的定义方法:
    //var obj = {name:"haha",age:12};
    $.ajax({
        type:"POST",
        url:"AjaxXMLServlet",
        data:"name="+userName,
        dataType:"xml",
        success:callback,
        error:handleError
    });
}

function handleError(XMLHttpRequest, textStatus, errorThrown){
     alert(textStatus);
}

function callback(data){

    //首先要把dom对象转换为jquery对象
    var jqueryObj = $(data);
    var message = jqueryObj.children();
    var text = message.text();
    var resultObj = $("#result");
    resultObj.html(text);
}

 

 解决XHR与图片缓存问题

IE对于相同的url默认从缓存读取

方法:添加时间戳

function convertURL(url){
    var timestamp = (new Date()).valueOf();
    if(url.indexOf("?")>=0){
        url = url + "&t=" + timestamp;
    }else{
        url = url + "?t=" + timestamp;
    }
    return url;
}

 

 

解决Ajax中文乱码

 

1、页面端做一次encodeURI:

 var url = "AjaxServer?name="+encodeURI(userName);

     服务器端:

String name = new String(old.getBytes("ISO8859-1"),"UTF-8");

 

 2、页面端做两次encodeURI:

 var url = "AjaxServer?name=" + encodeURI(encodeURI(userName));

 

      服务器端:

  String name = URLDecoder.decode(old,"UTF-8");

 

解决Ajax跨域访问问题

 

 代理服务器

 

 

传送Text的Servlet

 

public class AjaxServer extends HttpServlet {
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        doGet(request, response);
    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        response.setContentType("text/html;charset=utf-8");
        PrintWriter out = response.getWriter();
        String old = request.getParameter("name");
//        String name = new String(old.getBytes("ISO8859-1"),"UTF-8");
        String name = URLDecoder.decode(old,"UTF-8");
        if(old == null || old.length() == 0){
            out.println("用户名不能为空");
        }else{
//            String name = old;
            if(name.equals("liaolitao")){
                out.println(name+"已经存在");
            }else{
                out.println(name+"尚未存在,可以注册");
            }
        }
    }
}

 

 

传送xml的Servlet

 

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        response.setContentType("text/xml;charset=utf-8");
        PrintWriter out = response.getWriter();
        String old = request.getParameter("name");

        StringBuilder builder = new StringBuilder();
        builder.append("<message>");
        if(old == null || old.length() == 0){
            builder.append("用户名不能为空").append("<message>");
        }else{
            String name = old;
            if(name.equals("liaolitao")){
                builder.append(name+"已经存在").append("</message>");
            }else{
                builder.append(name+"尚未存在,可以注册").append("</message>");
            }
            out.println(builder.toString());
        }
    }

 

 

 

 

分享到:
评论

相关推荐

    Ajax学习资料+实例

    【Ajax学习资料+实例】 Ajax,全称Asynchronous JavaScript And XML,是一种在2005年由Google推广的技术,它不是一种新的编程语言,而是一种利用已有标准(如JavaScript和HTTP请求)来创建交互性更强、运行更高效...

    .net中ajax学习解决方案

    "ajax学习"可能是一个包含教程、示例代码和讲解文档的文件或文件夹,而"ajaxѧϰ"可能是教学材料或练习项目,"ѧϰ"在拼音中代表"学习",因此这很可能是针对AJAX技术的学习资料。 以下是一些关于.NET中AJAX技术的...

    jquery、ajax学习电子书.zip

    《jQuery与Ajax学习指南》是一本专为初学者和有一定JavaScript基础的开发者设计的电子书,旨在帮助读者深入理解和熟练掌握这两个在实际Web开发中不可或缺的技术。jQuery是一个强大的JavaScript库,它极大地简化了DOM...

    Ajax 学习笔记,超详细的噢!不看后悔

    在这份超详细的Ajax学习笔记中,我们将深入探讨以下几个关键知识点: 1. **基础概念**:Ajax的核心是JavaScript对象XMLHttpRequest,它使得前端和后端能够进行异步通信。异步意味着用户在等待服务器响应时可以执行...

    ajax学习文档 很好的学习文档 希望大家好好的利用哦

    【Ajax学习文档】深入解析 Ajax,全称Asynchronous JavaScript and XML,是一种在不刷新整个网页的情况下,能够更新部分网页内容的技术。它并不是一项新技术,而是由一系列已存在的技术组合而成,包括JavaScript、...

    ajax 学习笔记源代码

    ajax 学习笔记源代码ajax 学习笔记源代码ajax 学习笔记源代码ajax 学习笔记源代码ajax 学习笔记源代码ajax 学习笔记源代码ajax 学习笔记源代码ajax 学习笔记源代码ajax 学习笔记源代码ajax 学习笔记源代码ajax 学习...

    AJAX学习总结(一)--基于jQuery第一个实例

    在本篇“AJAX学习总结(一)--基于jQuery第一个实例”中,我们将探讨如何使用jQuery库实现异步JavaScript和XML(AJAX)技术。AJAX允许我们在不刷新整个页面的情况下,更新网页的部分内容,从而提供更流畅的用户体验...

    ajax ajax原理 ajax代码 ajax编程 ajax学习

    - **jQuery 和 Axios**:学习Ajax时,可以了解jQuery的$.ajax()方法和现代JavaScript库Axios,它们都提供了更方便的接口来处理Ajax请求。 在项目中,Ajax常用于实现动态加载、表单提交、实时通讯等功能。随着前端...

    AJAX学习笔记(内含实例)

    AJAX学习笔记。内含Java调用的两个实例,及JavaScript的ajax工具函数,可快速入门,也可当手册使用。个人精心整理,值得收藏。 更多:http://download.csdn.net/user/daillo/all

    掌握Ajax 学习资料pdf

    掌握 Ajax第 1 部分-Ajax 简介 掌握 Ajax第 2 部分-使用 JavaScript 和 Ajax 发出异步请求 掌握 Ajax第 3 部分-Ajax 中的高级请求和响应 掌握 Ajax第 4 部分-利用 DOM 进行 Web 响应 掌握 Ajax第 5 部分-操纵 DOM ...

    ajax学习经典源码

    **Ajax学习经典源码详解** Ajax,全称Asynchronous JavaScript and XML(异步JavaScript和XML),是一种在无需刷新整个网页的情况下,能够更新部分网页的技术。它通过在后台与服务器进行少量数据交换,使得网页实现...

    ajax学习开发手册

    在《Ajax学习开发手册》中,通常会涵盖以下关键知识点: 1. **基础概念**: - **异步通信**:Ajax的核心是JavaScript的XMLHttpRequest对象,它允许浏览器在不刷新整个页面的情况下与服务器通信。 - **请求与响应*...

    Prototype Ajax学习范例

    这个"Prototype Ajax学习范例"提供了一系列实例,旨在帮助开发者迅速掌握使用Prototype进行Ajax操作的技巧。 Ajax,即异步JavaScript和XML(Asynchronous JavaScript and XML),是一种在无需刷新整个网页的情况下...

    javascript和ajax学习指南 Learn_JavaScript_and_Ajax_with_w3Schools.zip

    这份"Learn_JavaScript_and_Ajax_with_w3Schools.zip"压缩包包含了一个电子书和一个文本文件,旨在帮助学习者掌握这两种技术的核心概念。 JavaScript,全称ECMAScript,是一种轻量级的解释型编程语言,主要用于网页...

    Ajax学习——DWR的参考书和实用案例学习总结

    **Ajax学习——DWR的参考书和实用案例学习总结** DWR(Direct Web Remoting)是一种优秀的开源框架,专门用于简化Web应用程序中的Ajax(Asynchronous JavaScript and XML)开发。Ajax技术允许网页在不刷新整个页面...

    AJAX学习(包括WCF)

    标题"AJAX学习(包括WCF)"表明了这是一个关于AJAX技术的学习资源,其中还涵盖了WCF(Windows Communication Foundation)的相关内容。AJAX,即Asynchronous JavaScript and XML,是一种在无需重新加载整个网页的...

    一些ajax例子,ajax学习例子

    在本案例中,“一些ajax例子,ajax学习例子”是一个学习和实践Ajax技术的资源集合。 Ajax的核心是JavaScript对象XMLHttpRequest,它允许开发者在后台与服务器进行通信,而不会打断用户的交互。以下是一些关键的Ajax...

    Ajax学习全攻略,很好很全面的学习资料

    Ajax,即Asynchronous JavaScript and XML(异步JavaScript与XML),是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术。...通过深入学习和理解Ajax,开发者可以构建出更高效、更流畅的网页应用。

    ajax学习视频

    ajax学习视频,我自己学了感觉还不错,分享给大家一起学习!

Global site tag (gtag.js) - Google Analytics