jQuery ajax - mtu wa ajax()

Mfano

Kuwa na AJAX kuwasaidia kusoma mawazo ya kitabu

jQuery 代码:

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

HTML 代码:

Let AJAX change this text

亲自试一试

定义和用法

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

该方法是 jQuery 底层 AJAX 实现。简单易用的高层实现见 $.get, $.post 等。$.ajax() 返回其创建的 XMLHttpRequest 对象。大多数情况下你无需直接操作该函数,除非你需要操作不常用的选项,以获得更多的灵活性。

最简单的情况下,$.ajax() 可以不带任何参数直接使用。

注意:所有的选项都可以通过 $.ajaxSetup() 函数来全局设置。

语法

jQuery.ajax([settings])
Parameta 描述
settings

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

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

Parameta

options

类型:Object

Inahitaji kufikia. Mbinu ya kusaidia AJAX.

async

Aina: Boolean

Mimewa: true. Kwa mbinu ya kufikia huzi kwa kuzingatia mimewa, zote safari zinafanyika kwa kuzingatia mimewa. Ikiwa inafaa kusaidia safari za kufikia huzi za kuzingatia mimewa, tafadhali nika mimewa hii kwa false.

Taradhisia, safari za kufikia huzi zingekataa kusikia kwa kizamani, kwa sababu mtu mwingine wana kufanya mifano mingine inaonekana kwa sababu ya safari hii ya kufikia huzi.

beforeSend(XHR)

Aina: Function

Inaweza kurekebisha kampuni ya XMLHttpRequest kabla ya kusaidia safari, kama kuingiza kati ya HTTP.

Kampuni ya XMLHttpRequest ni para kiparamitha pekee.

Hii ni matukio ya Ajax. Ikiwa inarudi false inaweza kuondoa safari hii ya ajax.

cache

Aina: Boolean

Mimewa: true, dataType ina script na jsonp mimewa false. Kuweza kumewa false kwa huzi hii ya wiziwa.

Funzi za jQuery 1.2.

complete(XHR, TS)

Aina: Function

请求完成后回调函数 (请求成功或失败之后均调用)。

参数: XMLHttpRequest 对象和一个描述请求类型的字符串。

Inayotumiwa kumwambia jina la mtumishi wa jinsi ya kusababisha huzuni ya HTTP kwa sababu ya jina la mtumishi wa jinsi ya kusababisha huzuni ya HTTP.

contentType

Aina: 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

Aina: String

发送到服务器的数据。将自动转换为请求字符串格式。GET 请求中将附加在 URL 后。查看 processData 选项说明以禁止此自动转换。必须为 Key/Value 格式。如果为数组,jQuery 将自动为不同值对应同一个名称。如 {foo:["bar1", "bar2"]} 转换为 '&foo=bar1&foo=bar2'。

dataFilter

Aina: Function

给 Ajax 返回的原始数据的进行预处理的函数。提供 data 和 type 两个参数:data 是 Ajax 返回的原始数据,type 是调用 jQuery.ajax 时提供的 dataType 参数。函数返回的值将由 jQuery 进一步处理。

dataType

Aina: String

预期服务器返回的数据类型。如果不指定,jQuery 将自动根据 HTTP 包 MIME 信息来智能判断,比如 XML MIME 类型就被识别为 XML。在 1.4 中,JSON 就会生成一个 JavaScript 对象,而 script 则会执行这个脚本。随后服务器端返回的数据会根据这个值解析后,传递给回调函数。可用值:

  • "xml": kumwambia mafuta ya XML, inaweza kutumika na jQuery.
  • "html": kumwambia mengineo wa HTML ya kawaida; kama script ya kusikia inaweza kumwambia kwa kumwambia kaa chuki katika kumwambia kaa chuki.
  • "script": kumwambia mengineo wa JavaScript ya kawaida. Haina uangalifu wa kusakaa matokeo. Hata kama aameza chaguo cha kawaida cha 'cache'. Kuelewa: kwenye mafuta ya kusikia kwa kumwambia (hakuna katika eneo lake), mafuta ya kusikia kwa kumwambia walitumika kama GET kwa kumwambia kusikia (kwa sababu itatumiwa kwa kumwambia kaa chuki ya DOM).
  • "json": kumwambia data ya JSON.
  • "jsonp": Muatili wa JSONP. Kusikia kwa muatili wa JSONP, kama 'myurl?callback=?', jQuery inasababisha kumwambia '?' na jina la kikaa chuki kwa kumwambia kaa chuki.
  • "text": kumwambia mengineo wa kawaida wa matukio.
error

Aina: Function

Chaguo cha kawaida: kichukua kwa uangalifu (xml au html). Kusikia kosa kusababishwa, tumia kikaa hii.

Inaampata maadili tatu: kikaa XMLHttpRequest, ujumbe wa kosa, (kampungatano chaguo) kikaa kosa.

Kama kuna kosa, ujumbe wa kosa (kampungatano ya pili) kwa mbali ya kumwambia null, inaweza kuwa 'timeout', 'error', 'notmodified' au 'parsererror'.

Inayotumiwa kumwambia jina la mtumishi wa jinsi ya kusababisha huzuni ya HTTP kwa sababu ya jina la mtumishi wa jinsi ya kusababisha huzuni ya HTTP.

global

Aina: Boolean

Inaangazia matukio AJAX kuu. Chaguo cha kawaida: true. Kusababisha chaguo cha kawaida cha kama false haitakapofanya matukio AJAX kuu, kama 'ajaxStart' au 'ajaxStop' kinaweza kutumiwa kumengenia matukio Ajax mbalimbali.

ifModified

Aina: Boolean

Fikia data jipya tu kama data ya mfwendo inachangesha. Chaguo cha kawaida: false. Tumia kikaa Last-Modified kwa HTTP pakua. Kwenye jQuery 1.4, hii pia inachekia 'etag' iliyotumika na mfwendo kwa kubadilika.

jsonp

Aina: String

Kuandika jina la kikaa chuki kwa JSONP. Titi hii inatumiwa kumwambia sehemu ya 'callback' katika URL ya kusikia au kusajili kwa 'callback=?', kama 'jsonp':'onJsonPLoad' kinaweza kumwambia 'onJsonPLoad=?' kwa mfwendo.

jsonpCallback

Aina: String

Inayotumiwa kumwambia jina la mtumishi wa jinsi ya kusababisha huzuni ya HTTP kwa sababu ya jina la mtumishi wa jinsi ya kusababisha huzuni ya HTTP.

password

Aina: String

Inayotumiwa kumwambia jina la mtumishi wa jinsi ya kusababisha huzuni ya HTTP kwa sababu ya jina la mtumishi wa jinsi ya kusababisha huzuni ya HTTP.

processData

Aina: Boolean

Inayotumiwa kumwambia jina la mtumishi wa jinsi ya kusababisha huzuni ya HTTP kwa sababu ya jina la mtumishi wa jinsi ya kusababisha huzuni ya HTTP.

scriptCharset

Aina: String

Inayotumiwa kumwambia jina la mtumishi wa jinsi ya kusababisha huzuni ya HTTP kwa sababu ya jina la mtumishi wa jinsi ya kusababisha huzuni ya HTTP.

success

Aina: Function

Inayotumiwa kumwambia jina la mtumishi wa jinsi ya kusababisha huzuni ya HTTP kwa sababu ya jina la mtumishi wa jinsi ya kusababisha huzuni ya HTTP.

Inayotumiwa kumwambia jina la mtumishi wa jinsi ya kusababisha huzuni ya HTTP kwa sababu ya jina la mtumishi wa jinsi ya kusababisha huzuni ya HTTP.

Inayotumiwa kumwambia jina la mtumishi wa jinsi ya kusababisha huzuni ya HTTP kwa sababu ya jina la mtumishi wa jinsi ya kusababisha huzuni ya HTTP.

traditional

Aina: Boolean

Inayotumiwa kumwambia jina la mtumishi wa jinsi ya kusababisha huzuni ya HTTP kwa sababu ya jina la mtumishi wa jinsi ya kusababisha huzuni ya HTTP.

timeout

Aina: Number

Inayotumiwa kumwambia jina la mtumishi wa jinsi ya kusababisha huzuni ya HTTP kwa sababu ya jina la mtumishi wa jinsi ya kusababisha huzuni ya HTTP.

type

Aina: String

Inayotumiwa kumwambia jina la mtumishi wa jinsi ya kusababisha huzuni ya HTTP kwa sababu ya jina la mtumishi wa jinsi ya kusababisha huzuni ya HTTP. Inayotumiwa kumwambia jina la mtumishi wa jinsi ya kusababisha huzuni ya HTTP.

url

Aina: String

Inayotumiwa kumwambia jina la mtumishi wa jinsi ya kusababisha huzuni ya HTTP kwa sababu ya jina la mtumishi wa jinsi ya kusababisha huzuni ya HTTP. Inayotumiwa kumwambia jina la mtumishi wa jinsi ya kusababisha huzuni ya HTTP.

username

Aina: String

Inayotumiwa kumwambia jina la mtumishi wa jinsi ya kusababisha huzuni ya HTTP kwa sababu ya kumwambia jina la mtumishi wa jinsi ya kusababisha huzuni ya HTTP.

xhr

Aina: Function

Inahitaji kwa kuondoa kipindi cha XMLHttpRequest. Kwa IE kinaonekana kama ActiveXObject wakati wa kuzingatia ni XMLHttpRequest. Kwa kutumia au kuweka kipindi cha XMLHttpRequest cha uzalishaji. Hii inayotumiwa kuzungumza na kumwambia jina la mtumishi wa jinsi ya kusababisha huzuni ya HTTP. Inaonyesha jina la mtumishi kwa sababu ya jinsi ya kusababisha huzuni ya HTTP. Kwa IE kinaonekana kama ActiveXObject wakati wa kuzingatia ni XMLHttpRequest.

回调函数

如果要处理 $.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 来获得一致的结果。

Kama ukiwa na sababu ya kuhusu mimea ya html, yale yote ya JavaScript yenye mawasiliano yanaendelea kufanyika kabla ya kuwa HTML kama string ya kuzingatia. Kwa hivyo, kama ukiwa na sababu ya kuhusu mimea ya script, yanaendelea kufanyika kabla ya kuwa data ya mawasiliano ya script kama data ya matukio.

如果指定为 json 类型,则会把获取到的数据作为一个 JavaScript 对象来解析,并且把构建好的对象作为结果返回。为了实现这个目的,它首先尝试使用 JSON.parse()。如果浏览器不支持,则使用一个函数来构建。

JSON 数据是一种能很方便通过 JavaScript 解析的结构化数据。如果获取的数据文件存放在远程服务器上(域名不同,也就是跨域获取数据),则需要使用 jsonp 类型。使用这种类型的话,会创建一个查询字符串参数 callback=? ,这个参数会加在请求的 URL 后面。服务器端应当在 JSON 数据前加上回调函数名,以便完成一个有效的 JSONP 请求。如果要指定回调函数的参数名来取代默认的 callback,可以通过设置 $.ajax() 的 jsonp 参数。

注意:JSONP 是 JSON 格式的扩展。它要求一些服务器端的代码来检测并处理查询字符串参数。

如果指定了 script 或者 jsonp 类型,那么当从服务器接收到数据时,实际上是用了