jquery实现ajax提交表单数据或json数据 ajax :异步请求,浏览器地址栏不改变,进⾏局部刷新
1、jQuery 的ajax的⽅法
- 第⼀层:$.ajax(...) 最底层ajax请求,编写最复杂,完成功能最全的。
- 第⼆层:load() 、$.get() 、$.post() 开发中常⽤3个
- 第三层:$.getJSON() 、$.getScript() ⾼级开发
$.getJSON() 可以完成js"跨域"请求
域名:域名+端⼝+项⽬,js默认不能跨域请求。
$.getScript() 动态加载js⽂件。之前使⽤<script src="">加载页⾯时,⼀并加载js⽂件
第⼆层的⽅法:$().load() 、$.get() 、$.post()
2、$.get()
格式:(url, [data], [callback], [type])
参数1:url ,请求路径,例如:var url = "/ee19_jquery_day02/SendDataServlet";
参数2:data,请求参数,例如:var params = {"username":"杰克", "password":"1234"};
参数3:callback,回调函数;回调函数3个参数,分别为服务器响应数据,状态(success成功,error错误),ajax引擎参数4:type ,返回内容格式,xml, html, script, json, text, _default
响应数据,如果使⽤ application/json;charset=UTF-8 ,jQuery⾃动将数据转换json对象。
响应数据,如果使⽤ text/html;charset=UTF-8 ,回调函数获得字符串数据,需要⼿动转换。
使⽤“参数4”,设置"json",jQuery将字符串转换成 json对象
使⽤例⼦:
$.get(url,params,function(data){
alert(data);
},"json");
3、$.post()
格式:jQuery.post(url, [data], [callback], [type])
使⽤例⼦:
$.post(url,params,function(data){
alert(data);
},"json");
4、$.load()
格式:load(url, [data], [callback])
load()函数,必须使⽤jquery对象(任何的jquery对象都可以),⼀般$(this).load(url,params,fn);
如果没有请求参数,发送的GET请求
如果有请求参数,发送的POST请求。请求没有中⽂乱码
load()永远获得字符串,如果需要使⽤,必须⼿动转换json对象
var jsonData = eval("("+data+")");
ssage);
使⽤例⼦:
$(this).load(url,params,function(data){
//转换json对象
var jsonData = eval("("+data+")");
ssage);
});
5、第⼀层的⽅法:$.ajax()
/* $.ajax() 底层功能最强⼤的
* * 格式:jQuery.ajax([settings])
* 参数settings:设置所有的参数
* url:发送请求的地址
* data:发送到服务器的数据,请求参数
* type:请求⽅式 ("POST" 或 "GET"),
* success:成功的回调函数,success(data, textStatus, jqXHR)
* error:请求失败时调⽤此函数
* dataType:预期服务器返回的数据类型
* "xml": 返回 XML ⽂档,可⽤ jQuery 处理。
* "html": 返回纯⽂本 HTML 信息;包含的script标签会在插⼊dom时执⾏。
* "script": 返回纯⽂本 JavaScript 代码。不会⾃动缓存结果。除⾮设置了"cache"参数。'''注意:'''在远程请求时(不在同⼀个域下),所有POST请求都将转为GET请求。(因为将使⽤DOM的script标签来加载)
* "json": 服务器返回JSON数据。
* "jsonp": JSONP 格式。使⽤ JSONP 形式调⽤函数时,如 "myurl?callback=?" jQuery 将⾃动替换 ? 为正确的函数名,以执⾏回调函数。
* "text": 返回纯⽂本字符串jquery ajax例子
*/
$.ajax({
"url":url,
"data":params,
"type":"POST",
"success":function(data){
alert(data);
},
"error":function(){
alert("服务器繁忙,请稍后重试");
},
"dataType":"json"
});
注意:如果dataType : 'text',告诉浏览器,服务器返回纯⽂本字符串,但是服务器返回json字符串,数据需要使⽤eval()⽅法执⾏,如下$.ajax({
url : '${tPath}/json/menu.json',
type : 'POST',
dataType : 'text',
success : function(data) {
var zNodes = eval("(" + data + ")"); //如果dataType:'json',这句要注解掉
$.fn.zTree.init($("#treeMenu"), setting, zNodes);
},
error : function(msg) {
alert('菜单加载异常!');
}
});
---
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论