JQuery请求$.Ajax() 向右看齐 2022-07-15 23:53 195阅读 0赞 **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对象,以及一个包含成功或错误代码的字符串;
还没有评论,来说两句吧...