JQuery请求$.Ajax()

来源:互联网 发布:淘宝 英语教练 编辑:程序博客网 时间:2024/05/17 10:05

1请求方法
1.1Ajax()方法

//$.ajax({settings}); //所有参数都是可选的$.ajax({        type: "GET",//或者"POST"        url: "test.json",//请求地址        data: {username:$("#username").val(), content:$("#content").val()},//传入后台的参数        dataType: "json",        success: function(data){}//回调函数,请求成功后执行的函数,data为后台传来的数据          ......      });

1.2post()和post()方法

//$.get(url,[data],[callback])$.get("data.jsp",$("#firstName.val()"),function(data){   //返回的data是字符串类型});//$.post(url,[data],[callback],[type])$.post("emp.do?p=getAllEmp",{id:deptId,x:Math.random()},function(data){  //返回的data是字符串类型});

2Ajax可选参数说明
async:类型为Boolean,默认为true,表示请求为异步请求。为false时是同步请求。(所谓同步请求会锁住浏览器,则用户其它操作必须等请求完成才能执行);
url:类型为String,默认值为当前页地址。发送请求的地址;
type:类型为String,默认为GET,请求方式。注意:其它的HTTP请求方法,如PUT和DELETE也可以使用,但仅部分浏览器支持;
data:类型为String,发送到服务器的数据。将自动转换成请求字符串格式。GET请求将附加在URL后。查看processData选项说明以禁止此自动转换。必须为Key/Value格式。如果是数组,jQuery将自动为不同值对应同一个名称。如{foo:[“bar1”,”bar2”]}转换成‘&foo=bar1&foo=bar2’;
beforeSend(XHR):类型为Function,发送请求前可修改XMLHttpRequest对象的函数,如添加自定义的HTTP头。XMLHttpRequest对象是唯一的参数。这是个ajax事 件,如果返回false可以取消本次ajax请求;
catch:类型为Boolean,默认为true,dataType为script和jsonp时默认为false。设置为false将不缓存此页面。jQuery1.2新功能;
error:类型为Function,默认为自动判断(xml或html)。请求失败时调用此函数。有三个参数:XMLHttpRequest对象,错误信息,捕获的异常对象(可选)。如果发生了错误,错误信息(第二参数)除了得到null之外,还可能是”timeout“,”error“,”notmodified“和”parsererror“。这是个AJAX事件;
success:类型为Function,请求成功后的回调函数,并根据dataType参数进行处理后的数据;描述状态的字符串。这是个ajax事件;
complete(XHR, TS):类型Function,请求完后的回调函数(成功或失败均会调用)。参数为XMLHttpRequest对象和一个描述请求类型的字符串。这是个Ajax事件;
timeout:类型为Number,设置请求超时时间(毫秒)。此设置将覆盖全局设置;
traditional:类型为Boolean,如果想用传统的方式来序列化数据,那么就设置为true;
processData:类型为Boolean,默认为true,表示data选项传递进来的数据,如果是一个对象(技术上讲只要不是字符串),都会处理转换成一个查询字符串,以配合默认内容类型“application/x-www-form-urllencoded”。如果要发送DOM树信息或其它不希望转换的信息,则设置成false。
global:类型为Boolean,是否触发全局的ajax事件。默认为true,设置为false将不会触发全局ajax事件,如ajaxStart或ajaxStop可用于控制不同的ajax事件;
ifModified:类型为Boolean,仅在服务器数据改变时获取新数据,默认为false。使用的是HTTP包Last-Modified头信息判断。在jQuery1.4中,它也会检查服务器指定的‘etag’来确定数据有没有被修改过;
jsonp:类型为String,在一个jsonp请求中重写回调函数的名字。这个值用来替代在”callback=?“这种GET或POST请求中URL参数里的callback部分,比如{jsonp:’onJsonPLoad’}会导致将“onJsonPLoad=?”传给服务器。
jsonpCallback:类型为String,为jsonp请求指定一个回调函数名。这个值用来取代jQuery自动生成的随机函数名。这主要用来让jQuery生成独特的函数名,这样管理请求更容易,也能方便地提供回调函数和错误处理。也可以在让浏览器缓存GET请求时,指定这个回调函数名;
username:类型为String,用于响应HTTP访问认证请求的用户名;
password:类型为String,用于响应HTTP访问认证请求的密码;
scriptCharset:类型为String,只有当请求时dataType为“jsonp”或“script”,并且type是GET才会用于强制修改charset。通常只在本地和远程的内容编码不同时使用;
dataType:类型为String,预期服务器返回的数据类型。如果不指定,jQuery将自动根据HTTP包MIME信息来智能判断。比如XML MIME类型就被识别为XML。在1.4中,json就会生成一个JavaScript对象,而script则会执行这个脚本。随后服务器端返回后的数据会根据这个值解析后,传递给回调函数。 可用值:
”xml“:返回XML,,可用jQuery处理。
“html”:返回存文本HTML信息;包含的script标签会在插入dom时执行。
”script“:返回存文本JavaScript代码。不会自动缓存结果,除非设置”catch“参数。注意:在远程请求时(不在同一个域下),所有的POST请求都将转为GET请求(因为将使用DOM的script标签来加载)。
”json“:返回json数据。
”jsonp“:JSONP格式。使用JSONP形式调用函数时,如”myurl?callback=?“,jQuery将自动替换?为正确的函数名,以执行回调函数。
”text“:返回存文本字符串。
contentType:类型为String,默认值为”application/x-www-form-urlencoded“。发送信息至服务器时内容编码类型。默认值适合大部分情况。如果你明确地传递了一个content-type给$.ajax()那么它必定会发送给服务器(即使没有数据要发送)。
context:类型为Object,这个对象用于设置回调函数的上下文。也就是说让回调函数内this指向这个对象(如果不设定这个参数,那么this就指向调用本次AJAX请求时传递的options参数)。比如指定一个DOM元素作为context参数,这样就设置了success回调函数的上下文为这个DOM。
xhr:类型为Function,需要返回一个XMLHttpRequest对象。默认在IE下是ActiveXObject而其它情况下是XMLHttpRequest。用于重写或者提供一个增强的XMLHttpRequest对象。该参数在jQuery1.3以前不可用;
dataFilter:类型为Function,给AJAX返回原始数据进行预处理的函数。提供data和type两个参数:data是AJAX返回的原始数据,type是调用jQuery.ajax时提供的dataTpye参数。函数返回的值由jQuery进一步处理。

3Ajax回调函数
处理$.ajax()得到的数据使用回调函数
beforeSend(data):在发送请求之前调用,并且传入一个XMLHttpRequest作为参数;

error(data):在请求出错时调用。传入XMLHttpRequest对象,描述错误类型的字符串以及一个异常对象(如果有的话);

dataFilter(data):在请求成功之后调用。传入返回的数据以及“dataType”参数的值。并且必须返回新的数据(可能处理过的)传递给success回调函数;

success(data):当请求之后调用,传入返回后的数据,以及包含成功代码的字符串;

complete(data):当请求完成之后调用这个函数,无论成功或失败。传入XMLHttpRequest对象,以及一个包含成功或错误代码的字符串;

0 0
原创粉丝点击