欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

jQuery(八)、ajax

程序员文章站 2022-05-25 21:12:29
1、jQuery.ajax(url[, settings]) 通过HTTP请求加载远程数据。 注意:所有的settings选择都可以通过$.ajaxSetup()函数来全局指定。 回调函数 在实际开发中,当我们需要处理$.ajax() 得到的数据,就需要使用到回调函数。 (1) beforeSend ......

1、jquery.ajax(url[, settings])

  通过http请求加载远程数据。

  注意:所有的settings选择都可以通过$.ajaxsetup()函数来全局指定。

  回调函数

  在实际开发中,当我们需要处理$.ajax() 得到的数据,就需要使用到回调函数。

  (1) beforesend:在发送请求之前调用,并且传入一个 xmlhttprequest 作为参数。

  (2) error:在发送请求出差时调用。传入 xmlhttprequest 对象、描述错误类型的字符串以及一个异常对象。

  (3) datafilter:在请求成功之后调用。传入返回的数据以及 'datatype'参数的值。并且必须返回新的数据传递给success回调函数。

  (4) success:请求发送成功,后台返回数据调用。

  (5) complete:在请求完成之后调用,无论成功或失败。出入 xmlhttprequest 对象,以及包含成功或失败代码的字符串。

  settings选项

  1 async    boolean

  默认为true,表示所有请求均为异步请求。如果要发送同步请求,将该属性设置为false。

  2 beforesend(xhr)    function

function (xmlhttprequest) {
    this; // 调用本次ajax请求时传递的options参数
}

  3 cache    boolean

  默认为true,datatype为script和jsonp时默认为false,jquery1.2新功能,设置为false将不缓存此页面。

  4 complete(xht, ts)    function

function (xmlhttprequest, textstatus) {
    this; // 调用本次ajax请求时传递的options参数
}

  5 contents    map

  一个以"{字符串:正则表达式}"配对的对象,用来确定jquery将如何解析响应,给定内容类型。

  6 contenttype  string

  默认为"application/x-www-form-urlencoded",发送信息至服务器时的内容编码类型。

  7 context    object

  这个对象用于设置ajax相关回调函数的上下文。即让回调函数内的 this 关键字指向这个对象(如果不设置这个参数,this将指向本次ajax请求时传递的options参数)。比如指定一个dom元素作为context参数,回调函数的this 就指向这个 dom元素。

  8 converters    map

  默认为  {"* text":window.string, "text html":true, "text json":jquery.parsejson, "text xml":jquery.parsexml},表示对一个数据类型进行转换。每个转换器的值是一个函数,返回相应的转化值。

  9 crossdomain    map

  默认false,表示同域请求。如你想强制跨域请求(如jsonp形式),设置为false,是服务端重定向到另一域。

  10 data    object, string

  发送到服务器的数据。将自动转换为请求字符串格式。可以为字符串,如"&key1=val1&key2=val2",也可以是一个json对象。

  11 datafilter    function

  给ajax返回的原始数据进行相应的处理。提供data和type两个参数:data是返回的原始数据,type是调用jquery.ajax时提供的datatype参数。

function (data, type) {
    // 对ajax返回的原始数据进行预处理
    return data  // 返回处理后的数据
}

  12 datatype    string

  设置服务器返回的数据类型。如果不指定,jquery将自动根据http包mime信息来智能判断,比如xml mime就被识别为xml。可用值:

  xml:返回xml文档。

  html:返回纯文本html信息。

  script:返回纯文本javascript代码。不会自动缓存结果,除非设置了cache参数。

  json:返回json格式数据。

  jsonp:返回jsonp格式。

  text:返回纯文本字符串。

  13 error    function

function (xmlhttprequest, textstatus, errorthrown) {
    // 通常 textstatus 和 errorthrown 之中只有一个会包含信息
    this; // 调用本次ajax请求时传递的options参数
}

  14 global    function

  默认为true,触发全局ajax时间。如果设置为false,将不会触发全局ajax时间,如ajaxstart 或 ajaxstop可用于控制不用的 ajax事件。

  15 headers    map

  默认为 {} 。以 key:value 的形式设置请求头信息。

  16 mimetype      string

  一个mime类型,用来覆盖xmlhttprquest 的 mime类型。

  17 password      string

  用于响应http访问认证请求的密码。

  18 processdata      boolean

  默认为true,表示通过data选项传递进来的数据,如果是一个对象,都会转换成一个查询字符串,以配合默认内容类型 "application/x-www-form-urlencoded"。如果要发送dom 树信息或其他不希望转换的信息(如使用ajax上传文件),请设置为false。

  19 statuscode    map

  默认为 {} ,一组数字的http代码和函数对象,当相应时调用了相应的代码。

// 如果响应状态是404,将触发以下警报:
$.ajax({
  statuscode: {404: function() {
    alert('page not found');
  }
});

  20 success(data, textstatus)

  21 timeout    number

  设置请求超时时间(毫秒)。此设置会覆盖全局设置$/ajaxsetup()

  22 type      string

  请求方式,默认为get

  23 url      string

  发送请求的地址。

  24 username      string

  用于响应http访问认证请求的用户名。