• 复习日记-Ajax/JSON


    AJAX的作用:

    完成页面局部刷新而不影响用户的体验.

    * 用户名是否已经存在的校验

    * 百度信息输入的提示

    ...

    使用AJAX:

    JavaScript和XML

    * XMLHttpRequest:

        * 属性:

            * onreadystatechange:

            * readyState:

          

            * status:获得状态码

            * responseText   :响应的文本

            * responseXML    :响应的XML

        * 方法:

            * open(“请求方式”,”请求路径”,”是否异步”);

            * send(“提交的参数”);

            * setRequestHeader(“头信息”,”头的值”);

     

    开发步骤:

    1.获得XMLHttpRequest对象.

        * IE将XMLHttpRequest封装到一个ObjectXActive插件中.

        * Firefox直接可以创建XMLHttpRequest.

    2.设置状态改变触发一个函数.

    3.打开一个链接.

    4.发送请求.

    【AJAX的GET入门】

    创建XMLHttpRequest

    function createXMLHttpRequest() {

        var xmlHttp;

        try { // Firefox, Opera 8.0+, Safari

            xmlHttp = new XMLHttpRequest();

        } catch (e) {

            try {// Internet Explorer

                xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");

            } catch (e) {

                try {

                    xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");

                } catch (e) {

                }

            }

        }

     

        return xmlHttp;

    }

     

    AJAX的代码:

    function loadData() {

        // 1.创建异步XMLHttpRequest对象

        var xhr = createXMLHttpRequest();

        // 2.设置状态改变触发一个函数

        xhr.onreadystatechange = function(){

            // 回调函数.

            if(xhr.readyState == 4){// 请求发送完成

                if(xhr.status == 200){// 响应也正确

                    var data = xhr.responseText;

                    document.getElementById("d1").innerHTML=data;

                }

            }

        }

        // 3.打开一个连接:

        xhr.open("GET","/WEB15/ServletDemo1",true);

     

        // 4.发送请求

        xhr.send(null);

    }

    【AJAX的POST入门】

    function loadData(){

        // 1.创建异步对象

        var xhr = createXMLHttpRequest();

        // 2.设置状态改变触发的函数

        xhr.onreadystatechange = function(){

            if(xhr.readyState == 4){

                if(xhr.status == 200){

                    document.getElementById("d1").innerHTML=xhr.responseText;

                }

            }

        }

        // 3.打开连接

        xhr.open("POST","/WEB15/ServletDemo2",true);

        xhr.setRequestHeader("Content-Type","application/x-www-form-urlencoded");

        // 4.发送数据

        xhr.send("name=李四&password=456");

    }

    jQuery中的Ajax:

    四种方法:

      方法一:对象.load(url,params,callbackfunction(返回的数据data){});    

          一般不使用这种方式:因为不能注明post还是get,容易出现编码问题

      方法二:$.get(url,params,function(data){},type);

            url:请求路径

            params:请求参数,参数为key/value格式  key=value或者 { “key" : "value"} json格式

            function(data):回调函数,data就是服务器发送回来的数据

            type:返回信息的格式,一般用json  

          若type为json格式,返回值是一个json对象,获取特定值需要参数data.键名

      方法三:$.post(url,params,function(data){},type);

            url:请求路径

            params:请求参数,参数为key/value格式  key=value或者 { “key" : "value"} json格式

            function(data):回调函数,data就是服务器发送回来的数据

            type:返回信息的格式,一般用json 

      方法四:$.ajax([选项]);

          选项的可选值:

            url:请求路径

            type:请求方式

            data:发送到服务器的数据

            success:成功以后的回调

            error:异常之后的回调

            datatype:预期服务器返回的数据格式,一般使用json

    json:轻量级的数据交换格式,基于ECMAScript的一个子集

      json格式:

        格式一:value可以为任意值(value也可以为json串)

          {"key":"value","key1":"value"}

        格式二:元素e也可以为任意值...

          ["e1","e2"] 

      jsonlib工具类,可以使我们的对象转换成json数据

        1.导入jar包

        2.使用api

          JSONArray.fromObject(对象)      --数组和list

          JSONObject.fromObject(对象)    ---bean和map

      注意:在后台给前台返回数据的时候,使用response.getWriter.println(list)会出问题,解决办法是返回给前台一个json格式数据

                 

  • 相关阅读:
    mysql开启skip-name-resolve 导致root@127.0.0.1(localhost)访问引发的ERROR 1045 (28000)错误解决方案
    php的类型运算符instanceof(用于确定一个 PHP 变量是否属于某一类 class 的实例)
    PHP通过__call实现简单的AOP(主事务后的其他操作)比如前置通知,后置通知
    页面返回刷新或H5监听(手机的)返回键
    微信公众号分享的引导页(附素材)
    mysql服务器无法连接10055错误解决示例
    Eclipse安装svn插件的几种方式
    mysql导入和导出数据
    eclipse的常用快捷键
    springmvc乱码配置
  • 原文地址:https://www.cnblogs.com/tfboy/p/10383961.html
Copyright © 2020-2023  润新知