AjaxjQuery ajax – ajax() 方法

 

 

正文引自W3SCHOOL.

 

 

实例

经 AJAX 加载一段落文本:

jQuery 代码:

$(document).ready(function(){
  $("#b01").click(function(){
  htmlobj=$.ajax({url:"/jquery/test1.txt",async:false});
  $("#myDiv").html(htmlobj.responseText);
  });
});

HTML 代码:

<div id="myDiv"><h2>Let AJAX change this text</h2></div>
<button id="b01" type="button">Change Content</button>

亲尝试一试试

概念和用法

ajax() 方法通过 HTTP 请求加载远程数据。

拖欠方式是 jQuery 底层 AJAX 实现。简单好用的高层实现见 $.get, $.post
等。$.ajax() 返回其创造的 XMLHttpRequest
对象。大多数景象下而管需直接操作该函数,除非你待操作不常用之选择项,以博得更多的油滑。

绝简易的情形下,$.ajax() 可以免带来任何参数直接采用。

小心:所有的挑三拣四项都得以经过 $.ajaxSetup() 函数来全局设置。

语法

jQuery.ajax([settings])
参数 描述
settings

可选。用于配置 Ajax 请求的键值对集合。

可以通过 $.ajaxSetup() 设置任何选项的默认值。

参数

options
类型:Object

可选。AJAX 请求设置。所有选项都是可选的。

async
类型:Boolean

默认值:
true。默认设置下,所有请求都为异步请求。如果要发送同步请求,请将此选项设置为
false。

留神,同步请求将锁住浏览器,用户其它操作必须等待请求完成才足以实行。

beforeSend(XHR)
类型:Function

发送请求前可改 XMLHttpRequest 对象的函数,如添加于定义 HTTP 头。

XMLHttpRequest 对象是唯一的参数。

立即是一个 Ajax 事件。如果回去 false 可以撤销此次 ajax 请求。

cache
类型:Boolean

默认值: true,dataType 为 script 和 jsonp 时默认为 false。设置也 false
将未缓存是页面。

jQuery 1.2 新功能。

complete(XHR, TS)
类型:Function

告完成后掉调函数 (请求成功或者失败以后都调用)。

参数: XMLHttpRequest 对象以及一个叙述请求类型的字符串。

就是一个 Ajax 事件。

contentType
类型:String

默认值:
“application/x-www-form-urlencoded”。发送信息至服务器时内容编码类型。

默认值适合大多数情形。如果您明白地传递了一个 content-type 给 $.ajax()
那么它们必将会发送给服务器(即使没数量要发送)。

context
类型:Object

是目标用于安装 Ajax 相关回调函数的上下文。也就是说,让回调函数内 this
指向这目标(如果无设定是参数,那么 this 就本着调用本次 AJAX
请求时传递的 options 参数)。比如指定一个 DOM 元素作为 context
参数,这样即便设置了 success 回调函数的上下文为是 DOM 元素。

便比如这么:

$.ajax({ url: "test.html", context: document.body, success: function(){
        $(this).addClass("done");
      }});

data
类型:String

出殡到服务器的多寡。将机关转换为请字符串格式。GET 请求中将附加在 URL
后。查看 processData 选项说明以禁绝这个活动转换。必须为 Key/Value
格式。如果为数组,jQuery 将机关为无同值对应同一个称谓。如 {foo:[“bar1”,
“bar2”]} 转换为 ‘&foo=bar1&foo=bar2’。

dataFilter
类型:Function

给 Ajax 返回的原有数据的拓展先期处理的函数。提供 data 和 type
两只参数:data 是 Ajax 返回的旧数据,type 是调用 jQuery.ajax 时供的
dataType 参数。函数返回的值将由 jQuery 进一步处理。

dataType
类型:String

预料服务器返回的数据类型。如果不指定,jQuery 将电动根据 HTTP 包 MIME
信息来智能判断,比如 XML MIME 类型就深受辨认为 XML。在 1.4 中,JSON
就会见扭转一个 JavaScript 对象,而 script
则会尽这个本子。随后服务器端返回的数据会根据此值解析后,传递给回调函数。可用值:

  • “xml”: 返回 XML 文档,可用 jQuery 处理。
  • “html”: 返回纯文本 HTML 信息;包含的 script 标签会在插入 dom
    时执行。
  • “script”: 返回纯文本 JavaScript 代码。不会见自行缓存结果。除非设置了
    “cache” 参数。注意:在长途请求时(不在和一个域下),所有 POST
    请求都用转为 GET 请求。(因为以使用 DOM 的 script标签来加载)
  • “json”: 返回 JSON 数据 。
  • “jsonp”: JSONP 格式。使用 JSONP 形式调用函数时,如
    “myurl?callback=?” jQuery 将机关替换 ?
    为正确的函数曰,以行回调函数。
  • “text”: 返回纯文本字符串

error
类型:Function

默认值: 自动判断 (xml 或 html)。请求失败时调用此函数。

出以下三只参数:XMLHttpRequest 对象、错误信息、(可选)捕获的大对象。

若发生了错误,错误信息(第二只参数)除了取 null 之外,还可能是
“timeout”, “error”, “notmodified” 和 “parsererror”。

立即是一个 Ajax 事件。

global
类型:Boolean

是不是接触全局 AJAX 事件。默认值: true。设置也 false 将未会见触发全局 AJAX
事件,如 ajaxStart 或 ajaxStop 可用来控制不同之 Ajax 事件。

ifModified
类型:Boolean

只是以服务器数据变动时获得新数据。默认值: false。使用 HTTP 包
Last-Modified 头信息判断。在 jQuery 1.4 中,它呢会检查服务器指定的
‘etag’ 来规定数据没有被修改了。

jsonp
类型:String

于一个 jsonp 请求被再度写回调函数的名。这个值用来替以 “callback=?”
这种 GET 或 POST 请求中 URL 参数里的 “callback” 部分,比如
{jsonp:’onJsonPLoad’} 会导致将 “onJsonPLoad=?” 传被服务器。

jsonpCallback
类型:String

也 jsonp 请求指定一个回调函数名。这个价将故来代表 jQuery
自动生成的任性函数曰。这要为此来深受 jQuery
生成度独特之函数称作,这样管理要又易于,也能有利于地提供回调函数和错误处理。你吗可以当怀念叫浏览器缓存
GET 请求的上,指定这个回调函数名叫。

password
类型:String

用于应 HTTP 访问认证要的密码

processData
类型:Boolean

默认值:
true。默认情况下,通过data选项传递进入的数目,如果是一个对象(技术达到道要不是字符串),都见面处理转化成一个询问字符串,以配合默认内容类型
“application/x-www-form-urlencoded”。如果要是发送 DOM
树信息要任何未希望转换的消息,请设置也 false。

scriptCharset
类型:String

惟有当求时 dataType 为 “jsonp” 或 “script”,并且 type 是 “GET”
才会用来强制修改 charset。通常就当地头与长距离的始末编码不同时使用。

success
类型:Function

请成功后底回调函数。

参数:由服务器返回,并依据 dataType
参数拓展处理后底数码;描述状态的字符串。

及时是一个 Ajax 事件。

traditional
类型:Boolean

若果您想只要就此传统的章程来序列化数据,那么即使安装也
true。请参考工具分类下的 jQuery.param 方法。

timeout
类型:Number

装请求过时间(毫秒)。此设置以掩盖全局设置。

type
类型:String

默认值: “GET”)。请求方式 (“POST” 或 “GET”), 默认为 “GET”。注意:其它
HTTP 请求方法,如 PUT 和 DELETE 也堪下,但特有的浏览器支持。

url
类型:String

默认值: 当前页地址。发送请求的地点。

username
类型:String

用来应 HTTP 访问认证要的用户称。

xhr
类型:Function

欲返回一个 XMLHttpRequest 对象。默认在 IE 下是 ActiveXObject
而任何情况下是 XMLHttpRequest 。用于重写或者提供一个增强的
XMLHttpRequest 对象。这个参数在 jQuery 1.3 以前未可用。

扭动调函数

一旦一旦拍卖 $.ajax()
得到的数据,则用采取回调函数:beforeSend、error、dataFilter、success、complete。

beforeSend

于发送请求之前调用,并且传入一个 XMLHttpRequest 作为参数。

error

每当请出错时调用。传入 XMLHttpRequest
对象,描述不当类型的字符串以及一个可怜对象(如果有些话)

dataFilter

以求成功后调用。传入返回的数与 “dataType”
参数的价。并且要回到新的数码(可能是处理过的)传递让 success
回调函数。

success

当求后调用。传入返回后的数据,以及富含成功代码的字符串。

complete

当求完成后调用这个函数,无论成功或者失败。传入 XMLHttpRequest
对象,以及一个涵盖成功或错误代码的字符串。

数据类型

$.ajax()
函数依赖服务器提供的音来拍卖回来的数量。如果服务器报告说回去的数是
XML,那么回的结果虽足以为此便的 XML 方法或者 jQuery
的精选器来遍历。如果表现得到其他项目,比如
HTML,则数就盖文件形式来对比。

经过 dataType 选项还得指定其他不同数额处理方式。除了特的
XML,还可指定 html、json、jsonp、script 或者 text。

里,text 和 xml 类型返回的多少未会见经处理。数据才略的将
XMLHttpRequest 的 responseText 或 responseHTML 属性传递给 success
回调函数。

瞩目:我们得管网页服务器报告的 MIME 类型与我们挑选的 dataType
所匹配。比如说,XML的说话,服务器端就必须声明 text/xml 或者
application/xml 来博取同样的结果。

苟指定为 html 类型,任何内嵌的 JavaScript 都见面于 HTML
作为一个字符串返回之前实施。类似地,指定 script
类型的话,也会先实施服务器端生成
JavaScript,然后再次将剧本作为一个文书数据返回。

如若指定为 json 类型,则会把获得到之数作一个 JavaScript
对象来分析,并且把构建好的目标作为结果回到。为了促成者目的,它首先尝试用
JSON.parse()。如果浏览器不支持,则应用一个函数来构建。

JSON 数据是平等种能生有益通过 JavaScript
解析的结构化数据。如果得到的数据文件存放于长途服务器上(域名不同,也就是跨域获取数据),则用采取
jsonp 类型。使用这种类型的话,会创造一个查询字符串参数 callback=?
,这个参数会加于求的 URL 后面。服务器端应当以 JSON
数据前增长回调函数号称,以便就一个行之有效的 JSONP
请求。如果一旦指定回调函数的参数誉为来代替默认的 callback,可以透过安装
$.ajax() 的 jsonp 参数。

只顾:JSONP 是 JSON
格式的扩充。它要求部分服务器端的代码来检测并处理查询字符串参数。

假设指定了 script 或者 jsonp
类型,那么当打服务器收到到多少经常,实际上是因此了 <script> 标签而休是
XMLHttpRequest 对象。这种状况下,$.ajax() 不再返回一个 XMLHttpRequest
对象,并且也未会见传送事件处理函数,比如 beforeSend。

发送数据到服务器

默认情况下,Ajax 请求使用 GET 方法。如果只要采取 POST 方法,可以设定 type
参数值。这个选项也会潜移默化 data 选项中的情什么发送到服务器。

data 选项既好分包一个查询字符串,比如 key1=value1&key2=value2
,也得是一个照,比如 {key1: ‘value1’, key2: ‘value2’}
。如果采取了后世的花样,则数再次发送器会吃更换成为查询字符串。这个处理过程也得以由此安装
processData 选项为 false 来躲避。如果我们意在发送一个 XML
对象被服务器时,这种拍卖或者连无适用。并且以这种情形下,我们为应当改变
contentType 选项的价值,用任何合适的 MIME 类型来代表默认的
application/x-www-form-urlencoded 。

高等选项

global 选项用于阻止响应注册之回调函数,比如 .ajaxSend,或者
ajaxError,以及近似的方法。这当有点上特别有因此,比如发送的恳求非常频繁且简短的早晚,就好以
ajaxSend 里禁用这个。

苟服务器需要 HTTP 认证,可以动用用户称及密码可经 username 和
password 选项来装。

Ajax
请求是限时之,所以错误警告被破获并处理后,可以用来提升用户体验。请求过这个参数通常就保留其默认值,要不就透过
jQuery.ajaxSetup 来全局设定,很少吗一定的请求又设置 timeout 选项。

默认情况下,请求总会被作出去,但浏览器有或由她的休养存着调取数据。要禁止采取缓存的结果,可以装
cache 参数为
false。如果希望判断数从上次恳请后没有改了就告知出错的话,可以装
ifModified 为 true。

scriptCharset 允许受 <script> 标签的求设定一个特定的字符集,用于
script 或者 jsonp 类似之数据。当脚本和页面字符集不同时,这特别好用。

Ajax 的首先只假名是 asynchronous
的开端字母,这代表有的操作都是互的,完成的逐条没有前后关系。$.ajax()
的 async
参数总是设置成true,这表明在以伸手开始后,其他代码依然能够实践。强烈不建议将这选项设置成
false,这意味着所有的求都不再是异步的了,这为会见招致浏览器为锁死。

$.ajax 函数返回其创建的 XMLHttpRequest 对象。通常 jQuery
只在中间处理并创办是目标,但用户也可透过 xhr
选项来传递一个友好创办的 xhr
对象。返回的目标通常都为抛了,但仍然提供一个底部接口来察看与操控请求。比如说,调用对象上的
.abort() 可以以请完成前挂于要。

jQuery Ajax
参考手册

相关文章