jquery中实现ajax,不仅对ajax的方法进行了封装,还做了浏览器的兼容性处理,

一、jquery.ajax 的基本结构

$.ajax()中有许多参数,常用的如下:

  $.ajax({

    method     //数据的提交方式:get和post

         url        //数据的提交路径

         async       //是否支持异步刷新,默认是true

         data         //需要提交的数据,字典类型,

         dataType      //服务器返回数据的类型,

         success        //请求成功后的回调函数,接收两个参数: 返回数据和服务器状态,

         error       //请求失败后的回调函数

  });

二、jquery.post、jquery.get 的实现,功能一致,语法如下:

  $.post(method,url,async,data,dataType,success,error,);

  $.get(method,url,async,data,,dataType,success,error,);


注意:

  dataType参数的可设置多种类型,常用的有:xml、json、text、script、jsonp等,

  例如,如果服务器返回的是json格式的信息,客户端通过设置dataType:Json,可以直接得到json对象(tornado内部自动进行了字符串json.parse),  

  

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>login</title>
    <script src="{{static_url('js/jquery-1.12.4.min.js')}}"></script>
</head>
<body>
    <span>用户名:</span><input type="text" id="userName" name="userName" />
    <span>密码:</span><input type="password" id="passWord" name="passWord" />
    <input type="button" value="取消" />
    <input type="button" value="确定" onclick="SubmitFunc()" />
    <script>
        function SubmitFunc(){
            <!--# 方式一:.post-->
            <!--$.post(-->
                <!--'/login',-->
                <!--{'username':$("#userName").val(),'password':$("#passWord").val()},-->
                <!--function(severResponse){console.log(severResponse);},-->
            <!--);-->

            <!--# 方式二:.ajax-->
            $.ajax({
                method:'POST',
                url:'/login',
                async:true,
                data:{'username':$("#userName").val(),'password':$("#passWord").val()},
                dataType:'json',    <!--指定返回数据类型,进行相应的解析-->
                success:function(severResponse){console.log(severResponse);},
                error:function(){alert(arguments[1]);},
            });
        };

    </script>
</body>
</html>
View Code

  同理,如果设置dataType:script,相当于在tornado内部执行了eval(),


 

三、其他衍生方法:$.getJSON()、$.getScript()、$.postJSON、$.postScript(),

等同于直接设置好了dataType参数,其他设置不变,