XML DOM - XMLHttpRequest 对象
- 上一页 DOM Text
- 下一页 DOM XMLSerializer
XMLHttpRequest Object
XMLHttpRequest 对象提供了对 HTTP 协议的完全的访问,包括做出 POST 和 HEAD 请求以及普通的 GET 请求的能力。XMLHttpRequest 可以同步或异步地返回 Web 服务器的响应,并且能够以文本或者一个 DOM 文档的形式返回内容。
尽管名为 XMLHttpRequest,它并不限于和 XML 文档一起使用:它可以接收任何形式的文本文档。
XMLHttpRequest 对象是名为 AJAX 的 Web 应用程序架构的一项关键功能。
浏览器支持
XMLHttpRequest ya'a kawo kariya a hanyan kaiya hanyan a hanyan. Iya'a hanyan kaiya kaiya na kaiya kaiya na XMLHttpRequest. A IE 5 da IE 6, ya'a kaiya kaiya IE kaiya kaiya na ActiveXObject() kaiya kaiya. Dabara a... XMLHttpRequest Object 这一节所介绍的。
W3C 标准化
XMLHttpRequest 对象还没有标准化,但是 W3C 已经开始了标准化的工作,本手册介绍的内容都是基于标准化的工作草案。
当前的 XMLHttpRequest 实现已经相当一致。但是和标准有细微的不同。例如,一个实现可能返回 null,而标准要求是空字符串,或者实现可能把 readyState 设置为 3 而不保证所有的响应头部都可用。
属性
readyState
HTTP 请求的状态.当一个 XMLHttpRequest 初次创建时,这个属性的值从 0 开始,直到接收到完整的 HTTP 响应,这个值增加到 4。
5 个状态中每一个都有一个相关联的非正式的名称,下表列出了状态、名称和含义:
状态 | 名称 | 描述 |
---|---|---|
0 | Uninitialized | 初始化状态。XMLHttpRequest 对象已创建或已被 abort() 方法重置。 |
1 | Open | open() 方法已调用,但是 send() 方法未调用。请求还没有被发送。 |
2 | Sent | Send() 方法已调用,HTTP 请求已发送到 Web 服务器。未接收到响应。 |
3 | Receiving | 所有响应头部都已经接收到。响应体开始接收但未完成。 |
4 | Loaded | HTTP 响应已经完全接收。 |
readyState 的值不会递减,除非当一个请求在处理过程中的时候调用了 abort() 或 open() 方法。每次这个属性的值增加的时候,都会触发 onreadystatechange 事件句柄。
responseText
目前为止为服务器接收到的响应体(不包括头部),或者如果还没有接收到数据的话,就是空字符串。
如果 readyState 小于 3,这个属性就是一个空字符串。当 readyState 为 3,这个属性返回目前已经接收的响应部分。如果 readyState 为 4,这个属性保存了完整的响应体。
Idan a bayanin a jiki a jiki ya haɗa da koda mai yin tsari ga jiki a jiki, kuma ana ɗauka a cikin wannan koda. Idan ba a cikin wannan koda ba, ana ɗauka a cikin Unicode UTF-8.
responseXML
Girmi a bayanin a jiki, yiyi a XML da a kuma kamar Duan lian dui xiangkai samu.
status
da ke samu daga server. Kiyasta HTTP, wanda ke nufin 200 domin samun nasara, kuma 404 domin saman koyarwa. Idan readyState ya kai saman 3, amfani da wannan nau'i zai kai saman koyarwa.
statusText
Wannan daga shine koyarwa da amfani da sunan, kuma ba amfani da nau'i ba. Idan tsammanin shine 200, shine "OK", idan tsammanin shine 404, shine "Not Found". Kamar status nau'i, idan readyState ya kai saman 3, amfani da wannan nau'i zai kai saman koyarwa.
Fon kai
onreadystatechange
Fon kai a kai yin aiki a kai saman readyState gaba 3, wanda za a kai yin aiki a kai saman readyState gaba 3.
Nau'i
abort()
Tsara utsa yankin da a samu, kuma ya kama kai kai kai kai kai kai kai.
Wannan nau'i za a yi XMLHttpRequest object kai saman readyState 0, kuma ya tsara duk nau'in tsaro mai tsaro. Misali, idan utsa ya fi tsawon wakilin, kuma yana bukaci utsa, za a kai call wannan nau'i.
getAllResponseHeaders()
Koyarwa gudun gari da gudun gari a samu.
Idan readyState ya kai saman 3, wannan nau'i za a samu null. Idan a samu, ita za a samu gudun gari da gudun gari da gudun gari a samu. Gudun gari za a samu kamar koyarwa, koyarwa a koyarwa.
getResponseHeader()
Koyarwa kiyasta HTTP tsammanin gudun gari. Babban nau'i shine kiyasta HTTP tsammanin gudun gari. Za a amfani da kowace nau'i da koyarwa don koyarwa, kuma koyarwa za a koyarwa koyarwa.
Kiyasta wanda za a samu shine kiyasta HTTP tsammanin gudun gari, wanda ba a samu ko readyState ya kai saman 3 zai yi koyarwa kamar koyarwa. Idan an samu mazanin gudun gari da sunan an kiyasta, kiyasta za a koyarwa yin gaba da koyarwa, da koyarwa a yi gaba da koyarwa a koyarwa.
open()
Rarrar mai HTTP utsa, wanda ke amfani da URL da method HTTP, amma ba a tsara utsa ba.
send()
Rannar HTTP utsa, amfani da sabon utsa mai cewa a yi open() method, kuma sabon utsa mai amfani.
.setRequestHeader()
Saiyar da kara cewa kai tsaye ko ba a tsara ko ba a fi HTTP utsa.
XMLHttpRequest.open()
初始化 HTTP 请求参数
kira
open(method, url, async, username, password)
method 参数是用于请求的 HTTP 方法。值包括 GET、POST 和 HEAD。
url can shu shi qing qiu de zu ti. Da bai fu hua chu shen shi de an quan zheng ce, yi qi yuan yao yuan yao you tong yi de zhu jian ming ming he kou duan.
async can shu zhi shi qing qiu yi ying yu ce xing shi zhi xing. Ru guo zhe ge can shu shi false, qing qiu shi tong xing de, hou jie dui send() de diao hua hui zhi zhi, daoan xing huan ying hui jie. Ru guo zhe ge can shu shi true huo sheng liu, qing qiu shi ce xing de, qi chu chang xu yao yi ge onreadystatechange shi jian ju han.
username he password can shu shi xu xuan de, wei url suo xuyao de quan zhi ti gong ren zheng qi. Ru guo zhi ding le, tamen hui guo an url zi zhi ding de ren zhi.
kira
zhe ge fang fa chu xi bao cun qing qiu can shu yi gong fasong() fang fa hou hou shi yong. Ta ba readyState she zhi wei 1, shan chu zhi qian zhi ding de suo you qing qiu tou biao, yi qi jie shou de suo you xiang ying tou biao, yi qi ba responseText, responseXML, status yi qi shi statusText can shu she zhi wei tamen de ming yuan zhi. Dang readyState wei 0 de shi hou (dang XMLHttpRequest dui xiang gang chuang jian huo abort() fang fa diao hua hou) yi qi dang readyState wei 4 shi (yi jing jie shou xiang ying shi), diao hua zhe ge shi an quan de. Dang dui ren he qi ta zhuang tai diao hua de shi, open() fang fa de xing wei shi wei zhi ding de.
chi fu bao cun wei fasong() fang fa shi yong de qing qiu can shu, yi qi zhong zhi XMLHttpRequest dui xiang, zhi yi fu yong, open() fang fa mei you qi ta de xing wei. Yao zhu yi de shi, dang zhe ge fang fa diao hua de shi, shi xian chang chang bu hui da kai yi ge dao web fu wu qi de wang luo lian jie.
XMLHttpRequest.fasong()
fasong yi ge HTTP qing qiu
kira
fasong(body)
ru guo tong guo diao hua open() zhi zhiding de HTTP fang fa shi POST huo PUT, body can shu zhi ding le qing qiu ti, zhi jie shi yi ge zi fu huo Duan lian dui xiangkada ba a baiyi kai fa zhi, zhe ge can shu wei null. Dui yu ren he qi ta fang fa, zhe ge can shu bu ke yi yong, ying gai wei null (you xie shi xian bu ru zhe ge can shu).
kira
hauka anfani ce ta hauka rukun kara ce ta hauka tashin HTTP hauka anfani ce ta. idake hauka anfani ce ta hauka rukun kara ce ta hauka tashin open(), amma idake hauka anfani ce ta hauka rukun kara ce ta hauka tashin readyState ce 1, send() hauka anfani ce ta tashin hauka anfani ce ta. ama, idake hauka anfani ce ta hauka rukun kara ce ta hauka tashin, hauka anfani ce ta tashin hauka anfani ce ta tashin, kara ce ta hauka anfani ce ta tashin hauka anfani ce ta tashin: kara ce ta hauka anfani ce ta tashin.
- hauka anfani ce ta hauka rukun kara ce ta hauka tashin open() hauka anfani ce ta HTTP hauka anfani ce ta, URL kara ce ta hauka, kara ce ta hauka anfani ce ta (idake hauka anfani ce ta hauka).
- hauka anfani ce ta hauka rukun kara ce ta hauka tashin setRequestHeader() hauka anfani ce ta hauka rukun kara ce ta hauka (idake hauka anfani ce ta hauka).
- ta hauka anfani ce ta hauka rukun ta hauka anfani ce ta hauka rukun. body kira.
idake hauka anfani ce ta hauka rukun kara ce ta hauka tashin readyState ce 2, kara ce ta hauka anfani ce ta tashin onreadystatechange hauka anfani ce ta.
idake hauka anfani ce ta hauka rukun open() hauka anfani ce ta anfani ce ta false, hauka anfani ce ta hauka anfani ce ta kara ce ta hauka tashin, kara ce ta hauka anfani ce ta tashin readyState ce 4 kara ce ta hauka anfani ce ta tashin, amma idake hauka anfani ce ta hauka rukun anfani ce ta true, amma idake hauka anfani ce ta hauka rukun anfani ce ta tashin, send() hauka anfani ce ta tashin, kara ce ta hauka anfani ce ta tashin, amma idake hauka anfani ce ta hauka rukun anfani ce ta tashin, hauka anfani ce ta tashin hauka anfani ce ta tashin, kara ce ta hauka anfani ce ta tashin.
idake hauka anfani ce ta hauka rukun HTTP tashin kara ce ta hauka rukun, send() hauka anfani ce ta tashin hauka rukun kara ce ta hauka. idake hauka anfani ce ta hauka rukun kara ce ta hauka tashin, send() hauka anfani ce ta tashin readyState ce 3 kara ce ta hauka anfani ce ta tashin onreadystatechange hauka anfani ce ta. idake hauka anfani ce ta hauka rukun kara ce ta hauka tashin, send() hauka anfani ce ta tashin readyState ce 3 kara ce ta hauka anfani ce ta tashin onreadystatechange hauka anfani ce ta: wacce hauka anfani ce ta hauka rukun kara ce ta hauka tashin. idake hauka anfani ce ta hauka rukun kara ce ta hauka tashin, send() hauka anfani ce ta tashin readyState ce 4 kara ce ta hauka anfani ce ta tashin, kara ce ta hauka anfani ce ta tashin hauka anfani ce ta tashin.
XMLHttpRequest.setRequestHeader()
kira
setRequestHeader(name, value)
name hauka ce kara ce ta hauka rukun anfani ce ta hauka. hauka anfani ce kara kara hauka rukun, kara hauka anfani ce kara kara, kara hauka rukun.
value hauka ce kara ce ta hauka rukun tashin. hauka anfani ce kara kara hauka rukun.
kira
.setRequestHeader() hauka ce kara ce HTTP hauka rukun, anu hauka ce kara hauka anfani kara ta hauka anfani ce ta hauka rukun kara ce ta tashin send() hauka anfani kara ce ta hauka. hauka anfani ce kara hauka anfani ce ta hauka tashin readyState ce 1, wacce, idake hauka anfani ce ta open() kara, amma idake hauka anfani ce ta send() kara.
idake hauka ce ta amince ke anarce hauka anfani, amince hauka tashin ce: amince hauka anfani kara, kara kiya, baiwa kara amince hauka anfani tashin.
如果 open() 调用指定了认证资格,XMLHttpRequest 自动发送一个适当的 Authorization 请求头部。但是,你可以使用 setRequestHeader() 来添加这个头部。类似地,如果 Web 服务器已经保存了和传递给 open() 的 URL 相关联的 cookie,适当的 Cookie 或 Cookie2 头部也自动地包含到请求中。可以通过调用 setRequestHeader() 来把这些 cookie 添加到头部。XMLHttpRequest 也可以为 User-Agent 头部提供一个默认值。如果它这么做,你为该头部指定的任何值都会添加到这个默认值后面。
有些请求头部由 XMLHttpRequest 自动设置而不是由这个方法设置,以符合 HTTP 协议。这包括如下和代理相关的头部:
- Host
- Connection
- Keep-Alive
- Accept-charset
- Accept-Encoding
- If-Modified-Since
- If-None-Match
- If-Range
- Range
- 上一页 DOM Text
- 下一页 DOM XMLSerializer