jquery ajax小结

项目中遇到了jquery ajax 返回json数据的问题,通过大家的帮助一一 解决了,想起来真是汗颜,以前对这方面只知道用,没有思考,以至于遇到实际问题解决起来不是那么得心应手,算是给自己提个醒吧。

本文所使用的版本为jquery-1.7.1.js(未压缩版),未经特殊注明,下文中称为jquery。

jquery只是将普通的ajax事件进行了自己的封装,提供了一些比较好的实现方法。

1.jQuery.ajax(url,[settings]) 返回值为XMLHttpRequest对象

例子

var data=$.ajax({
			   type:"POST",
			   url:"http://10.0.1.9:8026/JSONDemo/servlet/UserLoginServlet",
			   async:false,
			   data:strUser,
			   error:function(xmlHttp_req,textStatus,errorThrown){
			     console.error("xmlHttpRequest error:",xmlHttp_req);
			   },
			   dataType:"json",
			   success:callback
			});
function callback(data){
			if(data.suc==1){
				$("#showMsg").text(data.msg);
			}
		   else{
				var show=$("#showMsg");
				show.css("color","red");
				show.html(data.msg);
		   }
		  
		}

可选参数:

type:提交数据的方式是GET还是POST方式

async:true/false :是否是异步请求

complete(XHR, TS):请求完成后回调函数 (请求成功或失败之后均调用)。后面的TS参数是一个描述信息

contentType:如果是发送请求的话,默认是"application/x-www-form-urlencoded" 如果是文件上传请改为:multipart/form-data

crossDomain:默认: 同域请求为false 这就是传说中的异域请求

data:传入的数据  默认是key/value 都是[object,object],自动被转换为字符串形式

dataType:总共是5种 分别是:

"xml": 返回 XML 文档,可用 jQuery 处理。

"html": 返回纯文本 HTML 信息;包含的script标签会在插入dom时执行。

"script": 返回纯文本 JavaScript 代码。不会自动缓存结果。除非设置了"cache"参数。'''注意:'''在远程请求时(不在同一个域下),所有POST请求都将转为GET请求。(因为将使用DOM的script标签来加载)

"json": 返回 JSON 数据 。

"jsonp": JSONP 格式。使用 JSONP 形式调用函数时,如 "myurl?callback=?" jQuery 将自动替换 ? 为正确的函数名,以执行回调函数。

"text": 返回纯文本字符串

error:这个比较有用,调试的时候就靠他了,请求失败时调用此函数。有以下三个参数:XMLHttpRequest 对象、错误信息、(可选)捕获的异常对象。上面的例子中就使用了他的第一个参数.

success(data, textStatus, jqXHR):请求成功后执行的函数 例如:上面例子中的callback

url:发送请求的地址

 2.jQuery.post(url, [data], [callback], [type])

还是上面的例子,我改写成jQuery.post实现,相比上面的更简洁,但是当出现异常的时候调试比较麻烦。

var data=$.post(
			"http://10.0.1.9:8026/JSONDemo/servlet/UserLoginServlet",
			 strUser,
			 callback,
			 "json");

3.jQuery.get(url, [data], [callback], [type])

其实就是通过get方式提交ajax请求,这里我就不写实现方式了,需要注意的是get方式传参的时候中文处理。

4.jQuery.getJSON(url, [data], [callback])

这个比get方式更加简洁,直接返回JSON类型数据,尤其适用于传简单数据类型参数。

 

你可能感兴趣的:(jquery ajax小结)