XML DOM - XMLHttpRequest
- Nafasi ya hivi karibuni DOM Text
- Pya ja DOM XMLSerializer
Inayohusiana XMLHttpRequest
XMLHttpRequest ina ukurabu wa kawaida wa protokoli ya HTTP, ikiwakilisha uwezo wa kumwengineza Post na Head kwa Post na GET kwa kawaida. XMLHttpRequest inaweza kutoa jibu kutoka kwa mtandao wa Web kwa kawaida au kwa kizuri, na inaweza kutoa maudhui kama mawili au kama DOM mafaa.
Ingawa ina jina la XMLHttpRequest, haujihatarisha kutumika na wasiliana wa XML: inaweza kuwa na wasiliana ya aina yoyote ya mawili.
XMLHttpRequest ina jina la AJAX inayohusiana na maktaba ya Web Application Architecture.
Inasababisha kumekadiri vifungo vya XMLHttpRequest.
XMLHttpRequest inasikia kwa kawaida katika vifungo vya kina vya kidini. Hili inasababisha kumekadiri vifungo vya XMLHttpRequest. Kwenye IE 5 na IE 6, inafaa kutumia makina ya IE ya kawaida ya ActiveXObject(). Kama ilivyo Inayohusiana XMLHttpRequest Inayotumika kwa kina hii.
W3C kinachotumia kina
Kina la XMLHttpRequest kinachotumika kinaadilifu, lakini W3C kinachotumia kina kinachotumika kwa kuzingatia, taba hii inatoa kina kinachotumika kwa kuzingatia.
Muatili wa XMLHttpRequest kinachotumika kinaadilifu. Kama na kina kinachotumika, kina kinachotumika kama mradi wa ukosa, au kina kinachotumika kama uwanja wa 3 bila kuhakikisha kwamba kichwa cha jibu kinachotumika kwa kili.
Uga
readyState
Adhifa ya jibu la jina la HTTP. Kama XMLHttpRequest inapatikana kwa kwanza, ujanzi wa jina hii inaanza kutoka 0 hadi jibu la HTTP linaongezwa kwa kili.
Kila adhifa ya 5 ina jina la uharibifu unaotumika kwa kuzingatia, kichwa chote kilichotumika kwa kutoa tabia ya kina, inayotumiwa kama:
Adhifa | Jina | Kuonyesha |
---|---|---|
0 | Uninitialized | Adhifa la kuanzia. Kina la XMLHttpRequest kinachotumika ama kinachotumika kwa sababu ya kufanywa abort(). |
1 | Open | open() mtu anayotumika anayotumika, send() mtu anayotumika haanatumiwa. Tafutaji haanafikia mwenyeji. |
2 | Sent | Send() mtu anayotumika, jibu la HTTP linafikia mwenyeji wa Web. Hata hivi, hata jibu linalotumiwa kinaongezwa kwa kili. |
3 | Receiving | Wakati hii jibu linalotumiwa kwa mwenyeji kinaongezwa kwa kili (kama hauna kichwa cha matokeo kinachotumiwa kama mradi wa ukosa). |
4 | Loaded | Jibu la HTTP kinaongezwa kwa kili. |
Wazitoa wa readyState haonyesha, kama hauna uwanja wa tafutaji unaletwa kwa sababu ya kufanywa abort() au open() mtu. Kila mara uwanja huu unaongezwa, hatua ya onreadystatechange inapokelewa.
responseText
Matokeo ya kibao kinachotumiwa kwa mwenyeji (kama hauna kichwa cha matokeo kinachotumiwa kama mradi wa ukosa).
Ikiwa readyState ni chini ya 3, uga huu ni mradi wa ukosa. Ikiwa readyState ni 3, uga huu unapata sehemu ya jibu iliyotumiwa kuzingatia. Ikiwa readyState ni 4, uga huu hifadhi sehemu ya kibao ya jibu kwa kili.
Ikiwa jibu linautumia kichwa cha uharibifu kinachotumika kwa kichwa cha matokeo, inatumiwa kama hilo. Kama hauna, inatumia Unicode UTF-8.
responseXML
Jibu la kwa tafutaji, inayofafanuliwa kama XML na ikawasilishwa kama Mwongozo wa Dokumenti返回。
status
由服务器返回的 HTTP 状态代码,如 200 表示成功,而 404 表示 "Not Found" 错误。当 readyState 小于 3 的时候读取这一属性会导致一个异常。
statusText
这个属性用名称而不是数字指定了请求的 HTTP 的状态代码。也就是说,当状态为 200 的时候它是 "OK",当状态为 404 的时候它是 "Not Found"。和 status 属性一样,当 readyState 小于 3 的时候读取这一属性会导致一个异常。
事件句柄
onreadystatechange
每次 readyState 属性改变的时候调用的事件句柄函数。当 readyState 为 3 时,它也可能调用多次。
方法
abort()
取消当前响应,关闭连接并且结束任何未决的网络活动。
这个方法把 XMLHttpRequest 对象重置为 readyState 为 0 的状态,并且取消所有未决的网络活动。例如,如果请求用了太长时间,而且响应不再必要的时候,可以调用这个方法。
getAllResponseHeaders()
把 HTTP 响应头部作为未解析的字符串返回。
如果 readyState 小于 3,这个方法返回 null。否则,它返回服务器发送的所有 HTTP 响应的头部。头部作为单个的字符串返回,一行一个头部。每行用换行符 "\r\n" 隔开。
getResponseHeader()
返回指定的 HTTP 响应头部的值。其参数是要返回的 HTTP 响应头部的名称。可以使用任何大小写来制定这个头部名字,和响应头部的比较是不区分大小写的。
该方法的返回值是指定的 HTTP 响应头部的值,如果没有接收到这个头部或者 readyState 小于 3 则为空字符串。如果接收到多个有指定名称的头部,这个头部的值被连接起来并返回,使用逗号和空格分隔开各个头部的值。
open()
Inafanya uanzishaji wa vipengele vya uharibifu wa HTTP, kama inaingia URL na method ya HTTP, lakini haikapewa uharibifu.
send()
Tuma uharibifu wa HTTP, kwa sababu ya kipakana cha method ya open() na kipakana cha kigeukia cha chaguo cha chaguo cha kipelekwa.
setRequestHeader()
Kuingiza au kushusha au haikubaliwe wa uharibifu wa HTTP.
XMLHttpRequest.open()
初始化 HTTP 请求参数
语法
open(method, url, async, username, password)
method 参数是用于请求的 HTTP 方法。值包括 GET、POST 和 HEAD。
url 参数是请求的主体。大多数浏览器实施了一个同源安全策略,并且要求这个 URL 与包含脚本的文本具有相同的主机名和端口。
Thamani ya async inaonyesha kwamba mtafiti inahitaji kufanyika kwa njia ya huzuni. Ikiwa thamani hii ni false, mtafiti hupewa kwa njia ya huzuni, kwa kuzingatia kwenda kwa uwanja wa mtafiti kinaanza kufikia kwa uwanja wa mtafiti. Ikiwa thamani hii ni true au inafikia, mtafiti hupewa kwa njia ya huzuni, na inahitaji kushika kwa kufikia kwa uwanja wa mtafiti kwa kushika kwa uwanja wa mtafiti kwa kufikia kwa uwanja wa mtafiti.
Thamani za username na password ni muhimu, kwa kuzifanyia mkataba wa ukabila wa kumtaarifu kwa url iliyotumika. Ikiwa itakayotumika, zitaingia mkataba yaliyotumika kwa ajili ya url.
说明
Hii inaangalia thamani ya mtafiti kwa ajili ya send() kutumika kisha. Ilinyesha readyState kwa 1, kufaisha kila kichwa cha mtafiti kilichotumika na kila kichwa cha mtafiti kilichotumika kwa ajili ya mtafiti wa kuelewa, na kufaisha thamani za responseText, responseXML, status na statusText kwa thamani zao za kuzalishwa. Kwa kuzingatia kikamilifu, inaonekana kwenda kwa uwanja wa mtafiti kwa wakati wa readyState kama 0 (kwa kila muda wa XMLHttpRequest kimeanzishwa ama kwa kusema kwa abort() kwa uwanja wa mtafiti) na wakati wa readyState kama 4 (kwa kumwona mtafiti), hii inaonesha kwenda kwa uwanja wa mtafiti. Kwa kuzingatia kwa kila muda mengine, maadili ya open() hupewa kwa ajili ya mtafiti yenye uhusiano.
Kwa kila maadili ya kusanya thamani kwa send() na kurejeshwa kwa XMLHttpRequest kwa ajili ya kutumika kote, method ya open() haukuwa na mabaya mengine. Kwa kuzingatia kikamilifu, wakati hii inaendelea kutumika, muundo haukuwa na muungano wa mtafiti kwa mtafiti wa mtumea wa Web.
XMLHttpRequest.send()
Inaonyesha kwa HTTP request
语法
send(body)
Ikiwa inahitaji kutumia method ya HTTP inayotumiwa kwa open(), kama POST au PUT, thamani ya body inaeleza kama mtumishi wa anwani ama upeo wa hali. Mwongozo wa DokumentiHadiifu ya wajibu, thamani huu hupingwa kwa null. Kwa kila mengine, thamani hupatikana, na hupingwa kwa null (kabla ya muundo mwingine hupingwa kwa uharibifu).
说明
这个方法导致一个 HTTP 请求发送。如果之前没有调用 open(),或者更具体地说,如果 readyState 不是 1,send() 抛出一个异常。否则,它发送一个 HTTP 请求,该请求由以下几部分组成:
- 之前调用 open() 时指定的 HTTP 方法、URL 以及认证资格(如果有的话)。
- 之前调用 setRequestHeader() 时指定的请求头部(如果有的话)。
- 传递给这个方法的 body 参数。
一旦请求发布了,send() 把 readyState 设置为 2,并触发 onreadystatechange 事件句柄。
如果之前调用的 open() 参数 async 为 false,这个方法会阻塞并不会返回,直到 readyState 为 4 并且服务器的响应被完全接收。否则,如果 async 参数为 true,或者这个参数省略了,send() 立即返回,并且正如后面所介绍的,服务器响应将在一个后台线程中处理。
如果服务器响应带有一个 HTTP 重定向,send() 方法或后台线程自动遵从重定向。当所有的 HTTP 响应头部已经接收,send() 或后台线程把 readyState 设置为 3 并触发 onreadystatechange 事件句柄。如果响应较长,send() 或后台线程可能在状态 3 中触发 onreadystatechange 事件句柄:这可以作为一个下载进度指示器。最后,当响应完成,send() 或后台线程把 readyState 设置为 4,并最后一次触发事件句柄。
XMLHttpRequest.setRequestHeader()
语法
setRequestHeader(name, value)
name 参数是要设置的头部的名称。这个参数不应该包括空白、冒号或换行。
value 参数是头部的值。这个参数不应该包括换行。
说明
setRequestHeader() 方法指定了一个 HTTP 请求的头部,它应该包含在通过后续 send() 调用而发布的请求中。这个方法只有当 readyState 为 1 的时候才能调用,例如,在调用了 open() 之后,但在调用 send() 之前。
如果带有指定名称的头部已经被指定了,这个头部的新值就是:之前指定的值,加上逗号、空白以及这个调用指定的值。
如果 open() 调用指定了认证资格,XMLHttpRequest 自动发送一个适当的 Authorization 请求头部。但是,你可以使用 setRequestHeader() 来添加这个头部。类似地,如果 Web 服务器已经保存了和传递给 open() 的 URL 相关联的 cookie,适当的 Cookie 或 Cookie2 头部也自动地包含到请求中。可以通过调用 setRequestHeader() 来把这些 cookie 添加到头部。XMLHttpRequest 也可以为 User-Agent 头部提供一个默认值。如果它这么做,你为该头部指定的任何值都会添加到这个默认值后面。
Mashairi ya kwanza ya mawendo inayotengenzwa na XMLHttpRequest kwa kusikitisha na protokoli ya HTTP, hivyo kuanzia na vitambulisho vya wengi:
- Host
- Connection
- Keep-Alive
- Accept-charset
- Accept-Encoding
- If-Modified-Since
- If-None-Match
- If-Range
- Range
- Nafasi ya hivi karibuni DOM Text
- Pya ja DOM XMLSerializer