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>
同理,如果设置dataType:script,相当于在tornado内部执行了eval(),
三、其他衍生方法:$.getJSON()、$.getScript()、$.postJSON、$.postScript(),
等同于直接设置好了dataType参数,其他设置不变,