AJax技术

JQuery学习笔记整理:AJAX(3)

字号+ 作者:H5之家 来源:H5之家 2018-03-10 10:00 我要评论( )

error 指定Ajax请求失败之后执行的函数。该函数还传入3个参数:第一个是jqXHR对象、 第二个是请求状态字符串(null、 'timeout'、 'error'、 'abort'和'parsererror')、 第三是错误信息字符串(响应状态的文本描述部

error    指定Ajax请求失败之后执行的函数。该函数还传入3个参数:第一个是jqXHR对象、 第二个是请求状态字符串(null、 'timeout'、 'error'、 'abort'和'parsererror')、 第三是错误信息字符串(响应状态的文本描述部分,例如'Not Found'或'Internal Server Error')。跨域脚本和跨域JSONP请求不会调用该函数。


success    指定Ajax请求成功完成之后执行的函数。该函数还传入3个参数:第一个是请求返回的数据data、第二个是响应状态字符串textStatus、第三个是jqXHR对象。


 textStatus 请求状态值说明:

abort  表示请求是jqXHR对象的abort方法终止的

error  表示一般的错误,这类错误通常是由服务器报告的

notmodified  表示这次请求得到的内容与上一次请求没有差别

parsererror  表示服务器返回的数据无法正常解析

success  表示请求成功完成

timeout  表示在服务器返回信息之前请求已经超时


 dataType (指定返回的数据类型)可能值:

'xml' :返回XML文档,可使用jQuery进行处理。  


'html': 返回HTML字符串。  


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


'json': 返回JSON数据。JSON数据将使用严格的语法进行解析(属性名必须加双引号,所有字符串也必须用双引号),如果解析失败将抛出一个错误。从jQuery 1.9开始,空内容的响应将返回null或{}。  


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

 

'text': 返回纯文本字符串。


 statusCode   一个 HTTP响应状态码和当请求响应相应的状态码时执行的函数组成的对象(例子):

$.ajax({

  url: 'example.php',

  statusCode: {

    404: function(){

      alert('找不到页面');

    },

    200: function(){

      alert('请求成功');

    }

  }

});


(1)全局设置

除了一个个参数设置外,如果你的所有Ajax请求都需要设置settings中某些参数时,你可以使用 $.ajaxSetup() 函数进行全局设置(从1.9版本后,仅在document上调用)。

$.ajaxSetup({

  timeout: 5000

});


 ajaxPrefileter()

指定预先处理Ajax参数选项的回调函数。在所有参数选项被jQuery.ajax()函数处理之前,你可以使用该函数设置的回调函数来预先更改任何参数选项。

$.ajaxPrefilter( [ dataType ,] handler);

参数:

 dataType :一个或多个用空格隔开的数据类型所组成的字符串。如果未指定该参数,则表示所有数据类型。可用的数据类型为"xml"、 "html"、 "text"、 "json"、 "jsonp"、 "script"。该字符串为它们之间的任意组合(多种类型用空格隔开),例如:"xml"、 "text html"、 "script json jsonp"。

 handler  : 用于预处理参选项的回调函数,它会传入三个参数:

handler(options,originalOpetions,jqXHR)

 options : 当前Ajax请求的所有参数选项

 originalOptions : 传递给$.ajax()方法的未经修改的残血选项

 jqXHR : 当前请求的jqXHR对象。


(2)事件方法

ajaxComplete(function)  注册在Ajax请求完成后执行的函数(不管请求成功或失败)

ajaxError(function)  注册在Ajax请求失败后执行的函数

ajaxSend(function)  注册在Ajax请求开始之前的执行的函数

ajaxStart(function)  注册在Ajax请求开始时执行的函数

ajaxStop(function)  注册在所有Ajax请求完成之后执行的函数

ajaxSuccess(function)  注册在Ajax请求成功完成之后执行的函数

除了ajaxStop回调函数不会收到任何参数,其他回调函数则会接收到以下三个参数(ajaxError方法还会额外得到一个描述出错信息的参数):

参数说明:

 event : 描述当前事件的Event对象

 jqXHR : 描述当前请求的jqXHR对象

 settings : 包含当前请求配置信息对象。

$(document).ajaxComplete(function(event,jqXHR,settings){});


$(document).ajaxError(function(event,jqXHR,settings,errorMsg){})

 errorMsg 描述出错信息的参数


注意:从1.9版本开始,上面这些事件方法仅允许在 document 对象上使用,而且这些方法必须在发起任何Ajax请求之前调用,以确保每一个Ajax请求正确触发注册的函数。



 

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

相关文章
  • JavaCrazyer的ItEye(codewu.com)技术博客

    JavaCrazyer的ItEye(codewu.com)技术博客

    2018-01-19 16:00

  • 退役的龙弟弟的博客

    退役的龙弟弟的博客

    2017-12-02 11:11

  • 在php中应用Ajax技术实现博客文章添加类别

    在php中应用Ajax技术实现博客文章添加类别

    2017-12-01 13:14

  • [原创]利用ajax实现长轮询技术

    [原创]利用ajax实现长轮询技术

    2017-11-20 16:02

网友点评