jquery ajax 之参数解析

jQuery.ajax()用来执行一个异步的HTTP(Ajax)的请求。

  • async
    布尔值,默认是 true。表示请求是否异步处理。
    如果需要发送同步请求,请将此选项设置为 false 。跨域请求和 dataType: "jsonp" 请求不支持同步操作。
    注意,同步请求将锁住浏览器,其它操作必须等待请求完成才可以执行。从 jQuery 1.8 开始, jqXHR ($.Deferred)中使用 async: false 已经过时。您必须使用的 success/error/complete 的回调选项代替相应的jqXHR对象的方法,比如jqXHR.done() 。
  • beforeSend(jqXHR,settings)
    发送请求前运行的函数。
    请求发送前的回调函数,用来修改请求发送前jqXHR(在jQuery 1.4.x的中,XMLHttpRequest)对象,设置自定义 HTTP 头信息等。在beforeSend
    函数中返回false将取消这个请求。
  • cache
    布尔值,默认是 true。dataType为script' 和 'jsonp'时默认为false。
    如果设置为 false ,浏览器将不缓存此请求页面。注意: 设置cache为 false只在 HEAD和GET请求中正常工作。它的工作原理是在GET请求参数中附加"_={timestamp}"。其他请求该参数不是所必须的,除了在IE8中,当一个POST请求一个已经用GET请求过的URL。
  • complete(jqXHR,status)
    请求完成后运行的函数(请求成功或失败之后均调用,即在 success 和 error 函数之后)。这个回调函数得到2个参数:
    jqXHR (在 jQuery 1.4.x中是 XMLHTTPRequest) 对象和一个描述请求状态的字符串("success", "notmodified", "error", "timeout", "abort", 或者 "parsererror") 。
  • context
    为所有 AJAX 相关的回调函数规定 "this" 值。
  • contentType
    发送数据到服务器时所使用的内容类型。默认是:"application/x-www-form-urlencoded"。从1.6开始,可以设置为false告诉jquery不设置任何内容类型头。
    数据将总是使用UTF-8字符集传递给服务器;你必须在服务器端进行适当的解码。
    注意:跨域请求,设置内容类型如果设置为除了 “application/x-www-form-urlencoded”、“multipart/form-data”、“ text/plain”,将会触发浏览器发送一个 preflight OPTIONS 请求到服务器。
  • crossDomain
    布尔型,如果你想在同一域中强制跨域请求(如JSONP形式),那么需要将crossDomain设置为 true 。这个允许服务器端重定向到另一个域。
  • data
    发送到服务器的数据。类型可以为:PlainObject、String、Array。
    如果不是字符串,会自动转为查询字符串。
    GET 请求中将附加在 URL 后面。查看 processData 选项说明,以禁止此自动转换。对象必须为"{键:值}"格式。如果这个参数是一个数组,jQuery会按照traditional 参数的值, 将自动转化为一个同名的多值查询字符串。注:如 {foo:["bar1", "bar2"]} 转换为 '&foo=bar1&foo=bar2'。
  • dataFilter(data,type)
    一个函数用来处理XMLHttpRequest的原始响应数据。提供data和type两个参数:
    data是Ajax返回的原始数据;
    type是调用jQuery.ajax时提供的dataType参数。
  • dataType
    预期的服务器响应的数据类型。可用值:xml, json, jsonp,script,text or html。如果不指定,jQuery 将自动根据 HTTP 包 MIME 信息来智能判断,比如XML MIME类型就被识别为XML。在1.4中,JSON就会生成一个JavaScript对象,而script则会执行这个脚本。随后服务器端返回的数据会根据这个值解析后,传递给回调函数。
  • error(jqXHR,status,error)
    请求失败要运行的函数。有以下三个参数:
    jqXHR (在 jQuery 1.4.x前为XMLHttpRequest) 对象;
    描述发生错误类型的一个字符串;
    捕获的异常对象。
    错误类型(第二个参数)除了得到null之外,还可能是"timeout", "error", "abort"和 "parsererror"。
    当一个HTTP错误发生时,error接收HTTP状态的文本部分,比如: "Not Found"(没有找到) 或者 "Internal Server Error."(服务器内部错误)。
  • headers
    默认为{}。一个额外的"{键:值}"对连同请求一起发送。头信息X-Requested-With: XMLHttpRequest总会被添加,但是默认值XMLHttpRequest可以在这里修改。
    此设置会被beforeSend函数内的设置覆盖 。 (1.5新增 )
  • ifModified
    布尔值,默认是 false。
    当参数值为true时,只有上次请求响应改变时,才允许请求成功。使用 HTTP 包 Last-Modified 头信息判断。
    当参数值为false,忽略HTTP头信息。在jQuery 1.4中,他也会检查服务器指定的'etag'来确定数据没有被修改过。
  • jsonp
    在一个 jsonp 请求中重写回调函数名称的字符串。
    这个值用来替代URL查询字符串 "callback=?" 中 "callback" 部分。比如设置{jsonp:'onJsonPLoad'}会将"onJsonPLoad=?"传给服务器。在jQuery 1.5中,设置jsonp参数为false,阻止jQuery添加"?callback"字符串到URL或试图使用"=?"转换。在这种情况下,你应该明确设置jsonpCallback设置。例如, { jsonp: false, jsonpCallback: "callbackName" }。
    如果你不信任ajax请求的目标,建议设置jsonp为false为了安全原因。
  • jsonpCallback
    指定一个 jsonp 请求中回调函数的名称。
    这个值将用来取代jQuery自动生成的随机函数名。这主要用来让jQuery生成一个唯一的函数名,这样管理请求更容易,也能方便地提供回调函数和错误处理。你可以在想让浏览器缓存GET请求的时候,指定这个回调函数名。从jQuery 1.5开始,你也可以使用一个函数作为该参数设置,在这种情况下,该函数的返回值就是jsonpCallback的结果。
  • processData
    默认情况下,通过data选项传递进来的数据,如果是一个对象(技术上讲只要不是字符串),都会处理转化成一个查询字符串,以配合默认内容类型 "application/x-www-form-urlencoded"。如果要发送 DOM 树信息或其它不希望转换的信息,请设置为 false。
    比如在文件上传时就需要设置成false。
  • success(data,status,jqXHR)
    当请求成功时运行的函数。这个函数传递3个参数:
    从服务器返回的数据,并根据dataType参数或者dataFilter回调函数处理后的数据;
    一个描述状态的字符串;
    还有 jqXHR(在jQuery 1.4.x前为XMLHttpRequest) 对象
  • timeout
    设置请求超时时间(毫秒)。超时周期开始于$.ajax 访问成功的那个时间点;
  • type
    请求的类型(GET 或 POST)。默认为 "GET"。
    jQuery 1.9.0新增method参数,作为type的别名。
    注意:其它 HTTP 请求方法,如 PUT 和 DELETE 也可以使用,主流浏览器都支持。
    参考: http://stackoverflow.com/questions/165779/are-the-put-delete-head-etc-methods-available-in-most-web-browsers
  • url
    发送请求的 URL。默认为当前页面。
  • xhr()
    创建 XMLHttpRequest 对象的回调函数。
    当ActiveXObject(IE)可用时默认为ActiveXObject,否则为XMLHttpRequest。覆盖以执行你自己的的XMLHttpRequest或增强工厂。

参考: http://api.jquery.com/jQuery.ajax/

你可能感兴趣的:(jquery ajax 之参数解析)