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()
格式:jQuery.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+")");
alert(jsonData.message);
使用例子:
$(this).load(url,params,function(data){
//转换json对象
var jsonData = eval("("+data+")");
alert(jsonData.message);
});
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": 返回纯文本字符串
*/
$.ajax({
"url":url,
"data":params,
"type":"POST",
"success":function(data){
alert(data);
},
"error":function(){
alert("服务器繁忙,请稍后重试");
},
"dataType":"json"
});
注意:如果dataType : 'text',告诉浏览器,服务器返回纯文本字符串,但是服务器返回json字符串,数据需要使用eval()方法执行,如下
$.ajax({
url : '${pageContext.request.contextPath}/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('菜单加载异常!');
}
});
---
posted on 2019-12-15 15:06 wenbin_ouyang 阅读(1537) 评论(0) 编辑 收藏 举报