AjaxjQuery ajax – ajax() 方法

 

 

正文引自W三SCHOOL.

 

 

实例

由此 AJAX 加载1段文本:

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>

亲身试1试

概念和用法

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 对象和一个讲述请求类型的字符串。

这是2个 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 请求上校附加在 ULX570L
后。查看 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。在 壹.4 中,JSON
就会生成一个 JavaScript 对象,而 script
则会举办这几个剧本。随后服务器端再次来到的数据会依照那一个值解析后,传递给回调函数。可用值:

  • “xml”: 返回 XML 文档,可用 jQuery 处理。
  • “html”: 重临纯文本 HTML 新闻;包蕴的 script 标签会在插入 dom
    时实践。
  • “script”: 再次来到纯文本 JavaScript 代码。不会自动缓存结果。除非设置了
    “cache” 参数。注意:在中远距离请求时(不在同3个域下),全数 POST
    请求都将转为 GET 请求。(因为将使用 DOM 的 script标签来加载)
  • “json”: 返回 JSON 数据 。
  • “jsonp”: JSONP 格式。使用 JSONP 方式调用函数时,如
    “myurl?callback=?” jQuery 将机关替换 ?
    为正确的函数名,以奉行回调函数。
  • “text”: 再次回到纯文本字符串

error
类型:Function

私下认可值: 自动判别 (xml 或 html)。请求退步时调用此函数。

有以下四个参数:XMLHttpRequest 对象、错误新闻、(可选)捕获的那一个对象。

壹旦发生了不当,错误新闻(第二个参数)除了拿走 null 之外,还也许是
“timeout”, “error”, “notmodified” 和 “parsererror”。

那是2个 Ajax 事件。

global
类型:Boolean

是或不是接触全局 AJAX 事件。暗中认可值: true。设置为 false 将不会触发全局 AJAX
事件,如 ajaxStart 或 ajaxStop 可用以调节不一样的 Ajax 事件。

ifModified
类型:Boolean

仅在服务器数据变动时获得新数据。默许值: false。使用 HTTP 包
Last-Modified 头消息剖断。在 jQuery 一.4 中,它也会检查服务器钦点的
‘etag’ 来规定数据未有被改变过。

jsonp
类型:String

在1个 jsonp 请求中重写回调函数的名字。这么些值用来替代在 “callback=?”
那种 GET 或 POST 请求中 UCRUISERL 参数里的 “callback” 部分,比如
{jsonp:’onJsonPLoad’} 会导致将 “onJsonPLoad=?” 传给服务器。

jsonpCallback
类型:String

为 jsonp 请求内定2个回调函数名。那一个值将用来代替 jQuery
自动生成的任性函数名。这根本用来让 jQuery
生成度独特的函数名,这样管理请求更便于,也能便于地提供回调函数和错误处理。你也得以在想让浏览器缓存
GET 请求的时候,钦赐那个回调函数名。

password
类型:String

用以响应 HTTP 访问认证请求的密码

processData
类型:Boolean

私下认可值:
true。暗中同意情状下,通过data选项传递进入的数码,若是是2个目的(本领上讲只要不是字符串),都会处理转化成三个查询字符串,以相当暗许内容类型
“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 一.三 在此之前不可用。

回调函数

比方要拍卖 $.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()。纵然浏览器不帮忙,则选拔2个函数来创设。

JSON 数据是①种能很便宜通过 JavaScript
解析的结构化数据。借使获得的数据文件存放在长距离服务器上(域名区别,也正是跨域获取数据),则必要利用
jsonp 类型。使用这类别型的话,会创立贰个查询字符串参数 callback=?
,那些参数会加在请求的 U奥迪Q7L 前边。服务器端应当在 JSON
数据前增进回调函数名,以便变成2个实用的 JSONP
请求。假设要钦点回调函数的参数名来取代默许的 callback,能够透过设置
$.ajax() 的 jsonp 参数。

只顾:JSONP 是 JSON
格式的扩充。它须求部分劳动器端的代码来检查实验并处理查询字符串参数。

借使钦定了 script 或许 jsonp
类型,那么当从服务器收到到数量时,实际上是用了 <script> 标签而不是
XMLHttpRequest 对象。那种情状下,$.ajax() 不再归来2个 XMLHttpRequest
对象,并且也不会传送事件处理函数,比如 beforeSend。

发送数据到服务器

暗中认可境况下,Ajax 请求使用 GET 方法。借使要动用 POST 方法,能够设定 type
参数值。那些选项也会潜移默化 data 选项中的内容什么发送到服务器。

data 选项既能够分包三个询问字符串,比如 key1=value一&key二=value二,也足以是多少个映射,比如 {key一: ‘value1’, key二: ‘value二’}
。若是运用了后者的款式,则数据再发送器会被转变来查询字符串。那一个处理过程也能够透过安装
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
对象。重回的目的平日已经被屏弃了,但照旧提供3个尾巴部分接口来观看和操控请求。比如说,调用对象上的
.abort() 能够在呼吁完结前挂起请求。

jQuery Ajax
参考手册

相关文章