XMLHttpRequest ãªãã¸ã§ã¯ãã® responseType
ããããã£ã§ããµã¼ãã¼ã«æå¾
ããå¿çã®ç¨®é¡ã夿´ãããã¨ãã§ãã¾ããè¨å®å¯è½ãªå¤ã¯ç©ºæåå (æ¢å®), "arraybuffer"
, "blob"
, "document"
, "json"
, "text"
ã§ãã response
ããããã£ã«ã¯ã¨ã³ãã£ãã£ã®æ¬ä½ã responseType
ã«å¿ã㦠ArrayBuffer
, Blob
, Document
, JSON
ã¾ãã¯æååã§æ ¼ç´ããã¾ããè¦æ±ãä¸å®å
¨ã§ãã£ããæåããªãã£ãå ´å㯠null
ã«ãªãã¾ãã
ãã®ãµã³ãã«ã§ã¯ç»åããã¤ããªã¼ãã¡ã¤ã«ã¨ãã¦èªã¿è¾¼ã¿ãçã®ãã¤ãåãã 8 ããã符å·ãªãæ´æ°å¤ã®é åã使ãã¾ãããªããããã¯ç»åããã³ã¼ããã¦ãã¯ã»ã«ãèªã¿åããã¨ã¯è¡ãã¾ããããã®ããã«ã¯ png ãã³ã¼ãã©ã¤ãã©ãªã¼ãå¿ è¦ã«ãªãã§ãããã
const req = new XMLHttpRequest();
req.open("GET", "/myfile.png", true);
req.responseType = "arraybuffer";
req.onload = (event) => {
const arrayBuffer = req.response; // Note: not req.responseText
if (arrayBuffer) {
const byteArray = new Uint8Array(arrayBuffer);
byteArray.forEach((element, index) => {
// do something with each byte in the array
});
}
};
req.send(null);
responseType
ããããã£ã« "blob"
ã¨ããæååãè¨å®ããã¨ããã¤ããªã¼ãã¡ã¤ã«ã Blob
ã¨ãã¦èªã¿åããã¨ãã§ãã¾ãã
const req = new XMLHttpRequest();
req.open("GET", "/myfile.png", true);
req.responseType = "blob";
req.onload = (event) => {
const blob = req.response;
// ...
};
req.send();
å¤ããã©ã¦ã¶ã¼ã§ã®ãã¤ããªã¼ãã¼ã¿ã®åä¿¡
ä¸ã«ç¤ºã loadBinaryResource()
颿°ã¯ãæå®ãã URL ãããã¼ããããã¤ããªã¼ãã¼ã¿ã颿°ã®å¼ã³å
ã«è¿ãã¾ãã
function loadBinaryResource(url) {
const req = new XMLHttpRequest();
req.open("GET", url, false);
// XHR binary charset opt by Marcus Granado 2006 [http://mgran.blogspot.com]
req.overrideMimeType("text/plain; charset=x-user-defined");
req.send(null);
return req.status === 200 ? req.responseText : "";
}
ãã¸ãã¯ã¯ 5 è¡ç®ã§ã MIME ã¿ã¤ãã䏿¸ããã¦ãã©ã¦ã¶ã¼ã«å¼·å¶çã«ãã¦ã¼ã¶ã¼å®ç¾©ã®æåã»ããã使ç¨ãããã¬ã¤ã³ããã¹ãã¨ãã¦æ±ããã¾ããããã«ããããã©ã¦ã¶ã¼ã¯ãããè§£éãããæªå¦çã®ã¾ã¾ãã¤ãåãéãã¾ãã
const filestream = loadBinaryResource(url);
const abyte = filestream.charCodeAt(x) & 0xff; // throw away high-order byte (f7)
ä¸è¨ã®ãµã³ãã«ã§ã¯ããã¼ããããã¤ããªã¼ãã¼ã¿å
ã®ãªãã»ãã x
ã®ãã¤ããåå¾ãã¾ãã x
ã®æå¹ç¯å²ã¯ 0 ãã filestream.length-1
ã§ãã
詳細ãªèª¬æã¯ downloading binary streams with XMLHttpRequest ãè¦ã¦ä¸ããã
ãã¤ããªã¼ãã¼ã¿ã®éä¿¡XMLHttpRequest ã® send
ã¡ã½ãããæ¡å¼µããã ArrayBuffer
ãBlob
ãFile
ãªãã¸ã§ã¯ããåãä»ãããã¨ã§ãã¤ããªã¼ãã¼ã¿ã®éä¿¡ã容æã«ãªãã¾ãã.
ç¶ããµã³ãã«ã¯ãã®å ´ã§ä½ã£ãããã¹ããã¡ã¤ã«ã POST
ã¡ã½ããã§ "file" ããµã¼ãã¼ã«éä¿¡ãã¾ãããã®ãµã³ãã«ã¯ãã¬ã¤ã³ããã¹ãã使ã£ã¦ãã¾ããã代ããã«ãã¼ã¿ããã¤ããªã¼ãã¡ã¤ã«ã ã¨ã¤ã¡ã¼ã¸ããäºãåºæ¥ã¾ãã
const req = new XMLHttpRequest();
req.open("POST", url, true);
req.onload = (event) => {
// Uploaded
};
const blob = new Blob(["abc123"], { type: "text/plain" });
req.send(blob);
ãã¤ããªã¼ãã¼ã¿ã¨ãã¦åä»ãé
åãéä¿¡
åçã«ãã¤ããªã¼ãã¼ã¿ã¨ã㦠JavaScript ã®åä»ãé åãéä¿¡ãããã¨ãã§ãã¾ãã
// Create a new array with fake data (Consecutive numbers (0 - 255), looping back to 0)
const array = new Uint8Array(512).map((v, i) => i);
const xhr = new XMLHttpRequest();
xhr.open("POST", url, false);
xhr.send(array);
ãã㯠8 ãããæ´æ°ã® 512 ãã¤ãã®é åãæ§ç¯ãã¦éä¿¡ãã¾ããå¿è«ã好ããªä»»æã®ãã¤ããªã¼ãã¼ã¿ã§ä½¿ãã¾ãã
ãã©ã¼ã éä¿¡ã¨ãã¡ã¤ã«ã¢ãããã¼ãFormData
ãåç
§ãã¦ãã ããã
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4