jQuery对ajax的支持
有load,get,post和ajax四个方法都可以,其中后三个直接使用$.xx调用
使用方法大致相同,这里只介绍get和post方法
--------------------------------------------------------------------------
JQuery API
jQuery.get(url, [data], [callback], [type])
jQuery.post(url, [data], [callback], [type])
jQuery.ajax(url,[settings])
----------------------------------------------------------------------------
函数的参数信息:
url,[data],[callback],[type]String,Map,Function,StringV1.0
url:待载入页面的URL地址
data:待发送 Key/value 参数。
callback:载入成功时回调函数。
type:返回内容格式,xml, html, script, json, text, _default。
----------------------------------------------------------------------------
回调函数的参数:可选
backData:返回值,可能是对象也可能是一个字符串或者js串
默认情况由服务器返回值决定类型,但也可以根据type参数来决定格式
--------------------------------------------------------------------------
推荐使用规则:
如果只是获取数据而不传递数据,那么使用get
①:jQuery.get(url) 根据实际需求对待返回的对象
②:jQuery.get(url, function() {
...........
}) 根据实际需求对待返回的对象
如果需要传递数据就用post方式
①:jQuery.post(url, data) 可以上传头像使用
②:jQuery.post(url, data, function(backData) {
..................backData类型不确定
})
③:jQuery.post(url, data, function(backData) {
..................强制指定返回值为文本类型,但是如果返回的是json串则无法通过js操控
解决方法:把文本类型转换成js对象,使用eval函数
var newData = eval( "(" + backData + ")" );
}, “text”)
一个小例子:
强制使用文本形式获取json串
1 <script type="text/javascript"> 2 3 var url = "${pageContext.request.contextPath}/test"; 4 var params = {"test": "哈哈哈"}; 5 $.post(url, params, function(backData) { 6 7 alert(backData); //强制获取文本类型 8 9 var newData = eval("(" + backData + ")"); //转换成js对象 10 11 var res = newData.sList; //通过js操纵json对象 12 for (var i = 0; i < res.length; i++) { 13 alert(res[i]); 14 } 15 16 }, "text"); 17 18 </script>
默认方式,如果是字符串就是text类型,如果json串就是js对象
<script type="text/javascript"> var url = "${pageContext.request.contextPath}/test"; var params = {"test": "哈哈哈"}; $.post(url, params, function(backData) { alert(backData); //这里是输出object,即js对象 for (var i = 0; i < res.length; i++) { alert(res[i]); } }); </script>