XMLHttpRequest
åºçº¿
广æ³å¯ç¨
*
èª 2015å¹´7æ èµ·ï¼æ¤ç¹æ§å·²å¨ä¸»æµæµè§å¨ä¸å¾å°æ¯æï¼å¯å¨å¤§å¤æ°è®¾å¤åæµè§å¨çæ¬ä¸æ£å¸¸ä½¿ç¨ã
* æ¤ç¹æ§çæäºé¨åçæ¯æç¨åº¦å¯è½ææä¸åã
夿³¨ï¼ æ¤ç¹æ§å¨ Web Workerï¼ä¸å æ¬ Service Workerï¼ä¸å¯ç¨ã
XMLHttpRequestï¼XHRï¼å¯¹è±¡ç¨äºä¸æå¡å¨äº¤äºãéè¿ XMLHttpRequest å¯ä»¥å¨ä¸å·æ°é¡µé¢çæ
åµä¸è¯·æ±ç¹å® URLï¼è·åæ°æ®ãè¿å
许ç½é¡µå¨ä¸å½±åç¨æ·æä½çæ
åµä¸ï¼æ´æ°é¡µé¢çå±é¨å
容ãXMLHttpRequest å¨ AJAX ç¼ç¨ä¸è¢«å¤§é使ç¨ã
尽管åç§°å¦æ¤ï¼XMLHttpRequest å¯ä»¥ç¨äºè·åä»»ä½ç±»åçæ°æ®ï¼èä¸ä»
ä»
æ¯ XMLãå®çè³æ¯æ HTTP 以å¤çåè®®ï¼å
æ¬ file:// å FTPï¼ï¼å°½ç®¡å¯è½åå°æ´å¤åºäºå®å
¨çåå çéå¶ã
å¦æä½ çéä¿¡æµç¨éè¦ä»æå¡å¨ç«¯æ¥æ¶äºä»¶ææ¶æ¯æ°æ®ï¼è¯·èèéè¿ EventSource æ¥å£ä½¿ç¨æå¡å¨åéäºä»¶ã对äºå
¨åå·¥çéä¿¡ï¼WebSocket å¯è½æ¯æ´å¥½çéæ©ã
æé 彿°
XMLHttpRequest()-
该æé 彿°ç¨äºåå§åä¸ä¸ª
XMLHttpRequestå®ä¾å¯¹è±¡ãå¨è°ç¨ä¸åä»»ä½å ¶ä»æ¹æ³ä¹åï¼å¿ é¡»å è°ç¨è¯¥æé 彿°ï¼æéè¿å ¶ä»æ¹å¼ï¼å¾å°ä¸ä¸ªå®ä¾å¯¹è±¡ã
屿§
æ¤æ¥å£ç»§æ¿äº XMLHttpRequestEventTarget å EventTarget ç屿§ã
XMLHttpRequest.onreadystatechange-
å½
readyState屿§åçååæ¶ï¼è°ç¨çäºä»¶å¤çå¨ã XMLHttpRequest.readyStateåªè¯»-
è¿å ä¸ä¸ªæ 符å·çæ´åï¼
unsigned shortï¼æ°åï¼ä»£è¡¨è¯·æ±çç¶æç ã XMLHttpRequest.responseåªè¯»-
è¿åä¸ä¸ª
ArrayBufferãBlobãDocumentï¼æStringï¼å ·ä½æ¯åªç§ç±»ååå³äºXMLHttpRequest.responseTypeçå¼ãå ¶ä¸å 嫿´ä¸ªååºå®ä½ï¼response entity bodyï¼ã XMLHttpRequest.responseTextåªè¯»-
è¿åä¸ä¸ª
Stringï¼è¯¥Stringå å«å¯¹è¯·æ±çååºï¼å¦æè¯·æ±æªæåæå°æªåéï¼åè¿ånullã XMLHttpRequest.responseType-
ä¸ä¸ªç¨äºå®ä¹ååºç±»åçæä¸¾å¼ï¼enumerated valueï¼ã
XMLHttpRequest.responseURLåªè¯»-
è¿åç»è¿åºååï¼serializedï¼çååº URLï¼å¦æè¯¥ URL 为空ï¼åè¿å空å符串ã
XMLHttpRequest.responseXMLåªè¯»-
è¿åä¸ä¸ª
Documentï¼å ¶ä¸å å«è¯¥è¯·æ±çååºï¼å¦æè¯·æ±æªæåãå°æªåéææ¯ä¸è½è¢«è§£æä¸º XML æ HTMLï¼åè¿ånullã XMLHttpRequest.statusåªè¯»-
è¿åä¸ä¸ªæ 符å·çæ´åï¼
unsigned shortï¼æ°åï¼ä»£è¡¨è¯·æ±çååºç¶æã XMLHttpRequest.statusTextåªè¯»-
è¿åä¸ä¸ª
Stringï¼å ¶ä¸å å« HTTP æå¡å¨è¿åçååºç¶æãä¸XMLHTTPRequest.statusä¸åçæ¯ï¼å®å å«å®æ´çååºç¶æææ¬ï¼ä¾å¦ï¼"200 OK"ï¼ã夿³¨ï¼æ ¹æ® HTTP/2 è§èï¼8.1.2.4 Response Pseudo-Header Fieldsï¼ååºä¼ªæ 头忮µï¼ï¼HTTP/2 没æå®ä¹ä»»ä½ç¨äºæºå¸¦ HTTP/1.1 ç¶æè¡ä¸å å«ççæ¬ï¼versionï¼æè åå çè¯ï¼reason phraseï¼çæ¹æ³ã
XMLHttpRequest.timeout-
ä¸ä¸ªæ 符å·é¿æ´åï¼
unsigned longï¼æ°åï¼è¡¨ç¤ºè¯¥è¯·æ±çæå¤§è¯·æ±æ¶é´ï¼æ¯«ç§ï¼ï¼è¥è¶ åºè¯¥æ¶é´ï¼è¯·æ±ä¼èªå¨ç»æ¢ã XMLHttpRequest.uploadåªè¯»-
XMLHttpRequestUploadï¼ä»£è¡¨ä¸ä¼ è¿åº¦ã XMLHttpRequest.withCredentials-
ä¸ä¸ª
å¸å°å¼ï¼ç¨æ¥æå®è·¨ç«Access-Controlè¯·æ±æ¯å¦åºå½å¸¦æææä¿¡æ¯ï¼å¦ cookie æèº«ä»½éªè¯æ 头ã
éæ å屿§
XMLHttpRequest.mozAnonåªè¯»-
ä¸ä¸ªå¸å°å¼ï¼å¦æä¸ºçï¼è¯·æ±å°å¨æ²¡æ cookie å身份éªè¯æ å¤´çæ åµä¸åéã
XMLHttpRequest.mozSystemåªè¯»-
ä¸ä¸ªå¸å°å¼ï¼å¦æä¸ºçï¼åå¨è¯·æ±æ¶ä¸ä¼å¼ºå¶æ§è¡åæºçç¥ã
äºä»¶å¤çå¨
ä½ä¸º XMLHttpRequest å®ä¾ç屿§ä¹ä¸ï¼æææµè§å¨é½æ¯æ onreadystatechangeã
忥ï¼è®¸å¤æµè§å¨å®ç°äºä¸äºé¢å¤çäºä»¶ï¼onloadãonerrorãonprogress çï¼ã详è§ä½¿ç¨ XMLHttpRequestã
æ´å¤ç°ä»£æµè§å¨ï¼å
æ¬ Firefoxï¼é¤äºå¯ä»¥è®¾ç½® on* 屿§å¤ï¼ä¹æä¾æ åççå¬å¨ addEventListener() API æ¥çå¬XMLHttpRequest äºä»¶ã
å®ä¾æ¹æ³
XMLHttpRequest.abort()-
å¦æè¯·æ±å·²è¢«ååºï¼åç«å»ä¸æ¢è¯·æ±ã
XMLHttpRequest.getAllResponseHeaders()-
以å符串çå½¢å¼è¿åææç¨ CRLF åéçååºå¤´ï¼å¦ææ²¡ææ¶å°ååºï¼åè¿å
nullã XMLHttpRequest.getResponseHeader()-
è¿åå 嫿å®ååºå¤´çå符串ï¼å¦æååºå°æªæ¶å°æååºä¸ä¸åå¨è¯¥æ¥å¤´ï¼åè¿å
nullã XMLHttpRequest.open()-
åå§åä¸ä¸ªè¯·æ±ã
XMLHttpRequest.overrideMimeType()-
è¦åç±æå¡å¨è¿åç MIME ç±»åã
XMLHttpRequest.send()-
åé请æ±ãå¦æè¯·æ±æ¯å¼æ¥çï¼é»è®¤ï¼ï¼é£ä¹è¯¥æ¹æ³å°å¨è¯·æ±åéåç«å³è¿åã
XMLHttpRequest.setRequestHeader()-
设置 HTTP è¯·æ±æ 头çå¼ãå¿ é¡»å¨
open()ä¹åãsend()ä¹åè°ç¨setRequestHeader()æ¹æ³ã
äºä»¶
abort-
å½ request è¢«åæ¢æ¶è§¦åï¼ä¾å¦å½ç¨åºè°ç¨
XMLHttpRequest.abort()æ¶ã ä¹å¯ä»¥ä½¿ç¨onabort屿§ã error-
å½ request ééé误æ¶è§¦åã ä¹å¯ä»¥ä½¿ç¨
onerror屿§ load-
XMLHttpRequestè¯·æ±æå宿æ¶è§¦åã ä¹å¯ä»¥ä½¿ç¨onload屿§ã loadend-
å½è¯·æ±ç»ææ¶è§¦åï¼æ è®ºè¯·æ±æå (
load) è¿æ¯å¤±è´¥ (abortæerror)ã ä¹å¯ä»¥ä½¿ç¨onloadend屿§ã loadstart-
æ¥æ¶å°ååºæ°æ®æ¶è§¦åã ä¹å¯ä»¥ä½¿ç¨
onloadstart屿§ã progress-
å½è¯·æ±æ¥æ¶å°æ´å¤æ°æ®æ¶ï¼å¨ææ§å°è§¦åã ä¹å¯ä»¥ä½¿ç¨
onprogress屿§ã timeout-
å¨é¢è®¾æ¶é´å æ²¡ææ¥æ¶å°ååºæ¶è§¦åã ä¹å¯ä»¥ä½¿ç¨
ontimeout屿§ã
è§è
| è§è |
|---|
| XMLHttpRequest > # interface-xmlhttprequest > |
æµè§å¨å ¼å®¹æ§
åè§
XMLSerializerï¼å° DOM æ è§£æä¸º XML 对象- ä½¿ç¨ XMLHttpRequest
- Fetch API