XMLHttpRequest
は、クライアントとサーバーの間でデータを伝送するための機能をクライアント側で提供する API です。ページ全体を再読み込みすることなく、URL からデータを読み出す簡単な方法を提供します。この API によって、ユーザの作業を中断させることなく Web ページの一部を更新することができます。 XMLHttpRequest
は AJAX プログラミングで多く使用されます。
XMLHttpRequest は Microsoft によって設計され、Mozilla、Apple および Google が採用しました。現在は WHATWG によって標準化されています。XMLHttpRequest
という名前ではあるものの、XML に限らないデータ形式を取り扱うことができ、(file
および ftp
を含む) HTTP 以外のプロトコルもサポートしています。
構文
var myRequest = new XMLHttpRequest();
XMLHttpRequest
の使い方の詳細については、XMLHttpRequest の利用を参照してください。
メソッド
XMLHttpRequest(JSObject objParameters); |
void abort(); |
DOMString getAllResponseHeaders(); |
DOMString? getResponseHeader(DOMString header); |
void open(DOMString method, DOMString url, optional boolean async, optional DOMString? user, optional DOMString? password); |
void overrideMimeType(DOMString mime); |
void send(); void send(ArrayBuffer data); void send(ArrayBufferView data); void send(Blob data); void send(Document data); void send(DOMString? data); void send(FormData data); |
void setRequestHeader(DOMString header, DOMString value); |
非標準メソッド |
---|
[noscript] void init(in nsIPrincipal principal, in nsIScriptContext scriptContext, in nsPIDOMWindow ownerWindow); |
[noscript] void openRequest(in AUTF8String method, in AUTF8String url, in boolean async, in AString user, in AString password); |
void sendAsBinary(in DOMString body); 非推奨 Gecko 31 |
プロパティ
このインターフェイスは、XMLHttpRequestEventTarget
および EventTarget
のプロパティを継承します。
XMLHttpRequest.onreadystatechange
readyState
属性が変更する都度呼び出されるEventHandler
。コールバック関数はユーザーインターフェーススレッドから呼び出されます。
警告: このプロパティはネイティブコードから使用してはいけません。また、同期リクエストとともに利用するべきでもありません。XMLHttpRequest.readyState
読取専用- リクエストの状態を
unsigned short
型の値で返します:値 状態 説明 0
UNSENT
open()
がまだ呼び出されていない。1
OPENED
send()
がまだ呼び出されていない。2
HEADERS_RECEIVED
send()
が呼び出され、ヘッダーとステータスが通った。3
LOADING
ダウンロード中。 responseText
は断片的なデータを保持している。4
DONE
一連の動作が完了した。 XMLHttpRequest.response
読取専用ArrayBuffer
、Blob
、Document
、JavaScript オブジェクト、DOMString
といったXMLHttpRequest.responseType
に従ったレスポンスの実体ボディ。リクエストが完了していない、または成功しなかった場合、この値はnull
となります。XMLHttpRequest.responseText
読取専用- リクエストに対するテキスト形式でのレスポンスを含む
DOMString
を返します。リクエストの失敗または未送信の場合はnull
となります。 XMLHttpRequest.responseType
- レスポンス型を定義する、列挙型の値です。以下の値を使用できます:
値 response
プロパティのデータ型""
DOMString
(デフォルト値)"arraybuffer"
ArrayBuffer
"blob"
Blob
"document"
Document
"json"
サーバーが返してきた JSON 文字列をパースした JavaScript オブジェクト "text"
DOMString
"moz-blob"
progress イベントから断片的な Blob
を取り出せるようにするため、Firefox で使用する値。データの受信中であっても、progress イベントハンドラでデータの処理を開始できます。"moz-chunked-text"
"text"
に似ていますが、こちらはストリーミングです。response
の値は"progress"
イベントの発生中に限り使用でき、直前の"progress"
イベント以降に受信したデータのみ含みます。"progress"
イベントの途中でresponse
にアクセスすると、response
には文字列およびデータが含まれています。それ以外の場合はnull
が返ります。現在、このモードは Firefox に限り動作します。
"moz-chunked-arraybuffer"
"arraybuffer"
に似ていますが、こちらはストリーミングです。response
の値は"progress"
イベントの発生中に限り使用でき、直前の"progress"
イベント以降に受信したデータのみ含みます。"progress"
イベントの途中でresponse
にアクセスすると、response
には文字列およびデータが含まれています。それ以外の場合はnull
が返ります。現在、このモードは Firefox に限り動作します。
註: Gecko 11.0 (Firefox 11.0 / Thunderbird 11.0 / SeaMonkey 2.8) より WebKit build 528 と同様に、同期リクエストの実行中に
responseType
属性を使用できなくなりました。属性の使用を試みると、NS_ERROR_DOM_INVALID_ACCESS_ERR
例外が発生します。この変更は、W3C へ標準化の提案が行われました。 XMLHttpRequest.responseXML
読取専用 読取専用- リクエストに対する、DOM
Document
オブジェクト形式のレスポンスです。リクエストが完了していない、成功しなかった、もしくは XML または HTML としてパースに失敗した場合、この値はnull
となります。レスポンスはtext/xml
ストリームとしてパースされます。responseType
を"document"
に設定しており、またリクエストを非同期に実行した場合は、レスポンスをtext/html
ストリームとしてパースします。註: サーバーがtext/xml
Content-Type ヘッダを付与していない場合、overrideMimeType()
を用いることで、XMLHttpRequest
に強制的に XML としてパースさせることができます。 XMLHttpRequest.status
読取専用- リクエストに対するレスポンスのステータスを
unsigned short
型の値で返します。この値は HTTP リザルトコードとなります (例えばリクエストに成功した場合、status
は 200 となります)。 XMLHttpRequest.statusText
読取専用- HTTP サーバーから返ってきたレスポンス文字列を
DOMString
型の値で返します。XMLHTTPRequest.status
とは異なり、("200 OK
" のように) レスポンスメッセージの完全な文が含まれています。 XMLHttpRequest.timeout
- リクエストを自動的に終了できるようになるまでの時間をミリ秒単位で表す、
unsigned long
型の値です。値 0 (デフォルト値) は、タイムアウトしないことを示します。註: 自身の window で、同期リクエスト向けにタイムアウトを使用することはできません。 - 非同期リクエストでタイムアウトを使用する
XMLHttpRequestEventTarget.ontimeout
- リクエストがタイムアウトする都度呼び出される
EventHandler
。 XMLHttpRequest.upload
読取専用- アップロードプロセスを表す
XMLHttpRequestUpload
。これは不透過オブジェクトですが、XMLHttpRequestEventTarget
イベントリスナを加えることにより、アップロードプロセスを追跡することができます。 XMLHttpRequest.withCredentials
- クロスサイト
Access-Control
リクエストに cookie や認証ヘッダといった認証情報を使用させるかを示すBoolean
型の値です。 - またこのフラグは、リクエストで cookie を無視することを示すためにも使用します。
- デフォルト値は
false
です。註: 同一サイトでのリクエストに影響を与えることはありません。註: Gecko 11.0 (Firefox 11.0 / Thunderbird 11.0 / SeaMonkey 2.8) より、同期リクエストの実行中にwithCredentials
属性を使用できません。属性の使用を試みると、NS_ERROR_DOM_INVALID_ACCESS_ERR
例外が発生します。註:Access-Control-
ヘッダの値に関わらず、リクエストを実行する前にwithCredentials
をtrue
に設定しなければ、異なるドメインからのXmlHttpRequest
のレスポンスに自ドメイン向けの cookie の値を設定することはできません。
非標準プロパティ
属性 | 型 | 説明 |
---|---|---|
channel 読取専用 |
nsIChannel |
リクエストの実行の際にオブジェクトによって使われるチャンネルです。チャンネルが作成されていない場合、この値は null となります。マルチパート・リクエストにおいてこの値は、マルチパート・リクエスト中の別々のパートではなく、最初のチャンネルとなります。アクセスには昇格された権限が必要です。 |
mozAnon 読取専用 |
boolean |
true である場合、リクエストは cookie や認証ヘッダを伴わずに送信します。 |
mozSystem 読取専用 |
boolean |
true である場合、リクエストで同一オリジンポリシーは適用されません。 |
mozBackgroundRequest |
boolean |
このプロパティは Web content で使用できません。アクセスには昇格された権限が必要です。 オブジェクトがバックグラウンドサービスのリクエストであるかどうかを示します。 この場合において、(認証や不正な証明書の通知といった) セキュリティダイアログが通常通り表示されたのであれば、単純にリクエストが失敗したことを意味します。 註: このプロパティは、
open() を呼び出す前に設定しなければなりません。 |
mozResponseArrayBuffer 廃止 Gecko 6 読取専用 |
ArrayBuffer |
リクエストに対する、JavaScript typed array 形式でのレスポンス。この値が NULL である場合、リクエストが成功しなかった、またはリクエストがまだ送信されていないかもしれません。 |
multipart 廃止 Gecko 22 |
boolean |
これは Gecko 独自の機能であり、Firefox/Gecko 22 で削除しました。代わりに Server-Sent Events、Web Sockets、または progress イベントの レスポンスが複数の XML 文書のストリームになることが予想されるかどうかを表します。 これによりサーバーからのプッシュ通信が可能になります。ひとつひとつの XML document を、このリクエスト形式で記述することにより、ドキュメントが送られてくる都度、新たな XML DOM document が生成され、 註:
true に設定された場合、最初の XMLdocument が読み込まれて以降、onload ハンドラと他のイベントハンドラはリセットされません。そして以後、レスポンスの断片を受け取る度に onload ハンドラが呼び出されることとなります。 |
コンストラクタ
XMLHttpRequest()
XMLHttpRequest を生成するコンストラクタです。これは、他のメソッドを呼び出す前に呼び出さなければなりません。
Gecko/Firefox 16 で、anonymous モードを有効化できる非標準のパラメータをコンストラクタに追加しました (バグ 692677 をご覧ください)。mozAnon
フラグを true
に設定すると、XMLHttpRequest 仕様に記載されている AnonXMLHttpRequest()
コンストラクタに事実上似たものになります。なお、これはどのブラウザでも未実装です (2012 年 9 月現在)。
XMLHttpRequest ( JSObject objParameters );
引数 (非標準)
objParameters
- 2 つのフラグを設定できます:
mozAnon
- Boolean:
true
に設定すると、リソースを読み込む際にブラウザはオリジンやユーザクレデンシャルを公開しません。さらに重要なこととして、明示的に setRequestHeader を使用しなければ cookie を送信しません。 mozSystem
- Boolean:
true
に設定すると、サーバーに CORS の使用のオプトインを要求することなくクロスサイト接続を許可します。mozAnon: true
の設定が必要です。すなわち、cookies やユーザクレデンシャルと組み合わせて送信することはできません。これは privileged (reviewed) アプリのみで動作します。Firefox で読み込む任意の Web ページでは動作しません。
メソッド
abort()
リクエストがすでに送信されている場合、リクエストを中止します。
getAllResponseHeaders()
DOMString getAllResponseHeaders();
CRLF で区切られた文字列として、すべてのレスポンスヘッダを返します。レスポンスを何も受け取らなかった場合は null
を返します。註: マルチパートリクエストでは、オリジナルのチャンネルではなく、リクエストの現在のパートのヘッダを返します。
getResponseHeader()
DOMString? getResponseHeader(DOMString header);
指定したヘッダ文を含む文字列を返します。レスポンスを受信していない、またはレスポンス中に指定したヘッダが存在しない場合は null
を返します。同じ名前で複数のレスポンスヘッダが存在する場合はひとつに連結された文字列として値が返り、それぞれの値はカンマと空白で前の値と区切られます。getResponseHeader()
メソッドは、UTF バイトシーケンスで値を返します。
open()
リクエストを初期化します。このメソッドは JavaScript から使用するようにしてください。ネイティブコードからの初期化には、代わりに openRequest()
を使用するようにしてください。
open()
または openRequest()
が既に呼び出された状況) で、このメソッドを呼び出した場合、abort()
を呼び出すのと等価となります。void open( DOMString method, DOMString url, optional boolean async, optional DOMString user, optional DOMString password );
引数
method
- 使用する HTTP メソッド。"GET"、"POST"、"PUT"、"DELETE" など。HTTP(S) URL でない場合は無視されます。
url
- リクエストを送信する URL
async
- 非同期で操作を実行するかを示す、オプションの真偽値です。デフォルトでは
true
に設定されています。false
が設定されている場合、send()
メソッドはレスポンスを受信するまで返しません。true
が設定されている場合、トランザクションが完了した通知は、イベントリスナによって提供されます。multipart
属性がtrue
である、または例外が投げられるであろう場合、この値はtrue
でなければなりません。註: Gecko 30.0 (Firefox 30.0 / Thunderbird 30.0 / SeaMonkey 2.27) よりメインスレッドでの同期リクエストは、ユーザエクスペリエンスに悪影響があるため非推奨になりました。 user
- 認証を目的として使用される、ユーザー名のオプションです。デフォルトでは、空の文字列となっています。
password
- 認証を目的として使用される、パスワードのオプションです。デフォルトでは、空の文字列となっています。
overrideMimeType()
サーバーから返ってくる MIME タイプを上書きします。例えば、サーバーの返す MIME タイプに関わらず、強制的に text/xml としてストリームをパースするなどの用途に使えるでしょう。このメソッドは send()
が呼び出される前に呼び出す必要があります。
void overrideMimeType(DOMString mimetype);
send()
リクエストを送信します。非同期リクエストの場合 (デフォルトの場合ですが)、メソッドはリクエストを送信して間もなく返ります。同期リクエストの場合、このメソッドはレスポンスが到着するまで返りません。
send()
を呼び出す前に、イベントリスナを設定する必要があります。ArrayBuffer
を引数として使用しなくなったことに注意してください。これは XMLHttpRequest
の仕様に含まれていません。代わりに ArrayBufferView
を使用してください (バージョン情報は、ブラウザ互換性の一覧表を参照してください)。void send();void send(ArrayBuffer data);void send(ArrayBufferView data); void send(Blob data); void send(Document data); void send(DOMString? data); void send(FormData data);
脚注
data が Document
である場合、送信の前にシリアライズされます。Document を送信するとき、Firefox 3 までのバージョンでは常に UTF-8 エンコーディングを用いてリクエストが送信されます。Firefox 3 では、正確に body.xmlEncoding
で指定されている、またはエンコードの指定が無い場合は UTF-8 を用いてエンコードされたドキュメントを送信します。
data が nsIInputStream
の場合、nsIUploadChannel
の setUploadStream()
メソッドと互換性が無ければなりません。その場合、リクエストの Content-Length ヘッダに nsIInputStream
の available()
メソッドを用いて取得された値が設定されます。メッセージ本文の一部として扱われるストリームの最初には、あらゆるヘッダが含まれます。ストリームの MIME タイプは、send()
よりも先に呼び出した setRequestHeader()
メソッドを用いて設定された Content-Type ヘッダが指定されるはずです。
バイナリコンテンツを送信する (ファイルのアップロードなど) 最良の方法は、ArrayBufferView または Blobs と send()
メソッドを組み合わせることです。ただし、文字列変換が可能なデータを送信したい場合は、代わりに sendAsBinary()
メソッドまたは StringView
Non native typed array スーパークラスを使用してください。
setRequestHeader()
HTTP リクエストヘッダの値を設定します。setRequestHeader()
は open()
の後、およびsend()
の前に呼び出さなくてはいけません。同じヘッダについてこのメソッドを複数回呼び出した場合は、値がひとつのリクエストヘッダに統合されます。
void setRequestHeader( DOMString header, DOMString value );
セキュリティ上の理由から、一部のヘッダはユーザエージェントのみ制御できます。このようなヘッダは forbidden header names や forbidden response header names に含まれています。
引数
header
- 設定されるヘッダーの名前。
value
- 設定されるヘッダーの本文の値。
非標準メソッド
init()
C++ コードから使用するために、オブジェクトを初期化します。
[noscript] void init( in nsIPrincipal principal, in nsIScriptContext scriptContext, in nsIGlobalObject globalObject, in nsIURI baseURI, [optional] in nsILoadGroup loadGroup );
引数
principal
- レスポンスに用いる principal。
null
は禁止されています。 scriptContext
- リクエストに用いたスクリプトコンテクスト。
null
は禁止されています。 globalObject
- リクエストでグローバルオブジェクトとして使用するオブジェクト。通常、これは
Window
ですが、サンドボックスやバックステージパスにすることもできます。null
にすることもできますが、リクエストがdocument
を生成できなくなります。なお Firefox 23 より前のバージョンでは、常にWindow
でした。 baseURI
- リクエストを扱う際に、相対 URI を解決するために使用するベース URI。
null
にすることができます。 loadGroup
Optional Gecko 37 が必要- リクエストを実行する際に使用する読み込みグループであり、省略可能です。ここで指定したグループは、読み込みグループががすでに存在する window がグローバルであっても使用します。
openRequest()
リクエストを初期化します。このメソッドはネイティブコードから使用するようにしてください。JavaScript コードからの初期化には、代わりに open()
を使用するようにしてください。open()
の項目を参照してください。
sendAsBinary()
非推奨 Gecko 31バイナリデータを送る、send()
メソッドの亜種です。
send(Blob data)
を使用できます。void sendAsBinary( in DOMString body );
このメソッドを FileReader
API の readAsBinaryString
メソッドと組み合わせて使用すると、任意の種類のファイルの読み込みおよびアップロード や生データの stringify が可能になります。
引数
body
- DOMstring 形式のリクエスト本体です。このデータは切り捨て処理 (それぞれの文字の上位バイトを削除) によって 1 バイト文字の文字列に変換されます。
sendAsBinary()
のポリフィル
sendAsBinary()
は実験的な機能であるため、sendAsBinary()
はサポートしないが typed arrays をサポートするブラウザ向けのポリフィルを示します。
/*\ |*| |*| :: XMLHttpRequest.prototype.sendAsBinary() Polyfill :: |*| |*| https://developer.mozilla.org/en-US/docs/DOM/XMLHttpRequest#sendAsBinary() |*| \*/ if (!XMLHttpRequest.prototype.sendAsBinary) { XMLHttpRequest.prototype.sendAsBinary = function (sData) { var nBytes = sData.length, ui8Data = new Uint8Array(nBytes); for (var nIdx = 0; nIdx < nBytes; nIdx++) { ui8Data[nIdx] = sData.charCodeAt(nIdx) & 0xff; } /* send as ArrayBufferView...: */ this.send(ui8Data); /* ...or as ArrayBuffer (legacy)...: this.send(ui8Data.buffer); */ }; }
send()
の引数として 2 種類のデータを渡す形でポリフィルを構築できます。ArrayBuffer
(ui8Data.buffer
– コメントアウトされているコード) または ArrayBufferView
(ui8Data
、これは 8 ビット符号なし整数値の typed array – コメントアウトしていないコード) です。しかし Google Chrome では ArrayBuffer
を送信しようとすると、ArrayBuffer is deprecated in XMLHttpRequest.send(). Use ArrayBufferView instead.
という警告メッセージが表示されます。この他に、StringView
Non native typed arrays スーパークラスと send()
メソッドを組み合わせてバイナリデータを送信する方法があります。註
- デフォルトでは、Firefox 3 では
XMLHttpRequest
のサーバー毎の接続数は 6 つずつに制限されています (それ以前のバージョンではこの値はサーバーごとに 2 つずつでした)。いくつかのインタラクティブな Web サイトではXMLHttpRequest
の接続を開いたままにしており、そうしたサイトでは複数のセッションが開かれているために、ウィンドウの再描画が行われなかったり操作に反応しなくなるなど、ブラウザが応答しなくなるかもしれません。この値はabout:config
内のnetwork.http.max-persistent-connections-per-server
の設定を編集することにより変更が可能です。 - Gecko 7.0 より、
setRequestHeader()
によって設定されるヘッダーが、リダイレクト時にもリクエストとともに送信されるようになりました。以前では、これらのヘッダーが送信されることはありませんでした。 XMLHttpRequest
は Gecko に於いてnsIXMLHttpRequest
、nsIXMLHttpRequestEventTarget
、およびnsIJSXMLHttpRequest
インターフェースを用いて実装されています。- リクエストがタイムアウトしたときに、"timeout" イベントが発生します。
イベント
XMLHttpRequest
インスタンスのプロパティとして、onreadystatechange
がすべてのブラウザでサポートされています。
後に、多くのブラウザでは追加でイベントハンドラがいくつもサポートされてきました (onload
、onerror
、onprogress
など)。これらは Firefox でもサポートされています。詳細は、nsIXMLHttpRequestEventTarget
および XMLHttpRequest の利用を参照してください。
Firefox を含む最近のブラウザでは、XMLHttpRequest
のイベントを監視する方法として、on*
プロパティにハンドラ関数を設定する方法に加え、標準のイベントの addEventListener
API を使用してイベントを監視する方法が提供されています。
許可設定
例えば Firefox OS のアプリなど、mozSystem
プロパティを通してシステム XHR を使用する際は、マニフェストファイルに systemXHR
の許可設定を追加しなければなりません。システム XHR は privileged または certified アプリで使用できます。
"permissions": { "systemXHR":{} }
仕様
仕様書 | 策定状況 | コメント |
---|---|---|
XMLHttpRequest | 現行の標準 | WHATWG living standard |
ブラウザ実装状況
機能 | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari (WebKit) |
---|---|---|---|---|---|
基本サポート (XHR1) | 1 | 1.0 (1.7 or earlier)[1] | 5[2] 7 |
(有) | 1.2 |
send(ArrayBuffer) |
9 | 9.0 (9.0) | 10 | 11.60 | ? |
send(ArrayBufferView) |
22 | 20.0 (20.0) | ? | ? | ? |
send(Blob) |
7 | 3.6 (1.9.2) | 10 | 12 | ? |
send(FormData) |
6 | 4.0 (2.0) | 10 | 12 | ? |
sendAsBinary(DOMString) |
未サポート[3] | 2.0 (1.8.1) | 未サポート | 未サポート | 未サポート |
response |
10 | 6.0 (6.0) | 10 | 11.60 | (有) |
responseType = 'arraybuffer' |
10 | 6.0 (6.0) | 10 | 11.60 | (有) |
responseType = 'blob' |
19 | 6.0 (6.0) | 10 | 12 | (有) |
responseType = 'document' |
18 | 11.0 (11.0) | 10 | 未サポート | 6.1 |
responseType = 'json' |
31 | 10.0 (10.0) | 未サポート | 12[4] 未サポート 16 17 |
(有) |
Progress イベント | 7 | 3.5 (1.9.1) | 10 | 12 | (有) |
withCredentials |
3 | 3.5 (1.9.1) | 10 | 12 | 4 |
timeout |
29.0[5] | 12.0 (12.0) | 8 | 12[6] 16 |
(有) |
responseType = 'moz-blob' |
未サポート | 12.0 (12.0) | 未サポート | 未サポート | 未サポート |
機能 | Android | Chrome for Android | Firefox Mobile (Gecko) | IE Phone | Opera Mobile | Safari Mobile |
---|---|---|---|---|---|---|
基本サポート | ? | 1.0 | (有) | ? | ? | ? |
send(ArrayBuffer) |
? | ? | ? | ? | ? | |
send(ArrayBufferView) |
? | ? | ? | ? | ? | |
send(Blob) |
? | ? | ? | ? | ? | |
send(FormData) |
? | ? | ? | ? | ? | |
sendAsBinary(DOMString) |
? | ? | ? | ? | ? | |
response |
? | ? | ? | ? | ? | |
responseType = 'arraybuffer' |
? | ? | ? | ? | ? | |
responseType = 'blob' |
? | ? | ? | ? | ? | |
responseType = 'document' |
? | ? | ? | ? | ? | |
responseType = 'json' |
? | ? | ? | ? | ? | |
Progress イベント | ? | ? | ? | ? | ? | |
withCredentials |
? | ? | ? | ? | ? | |
timeout |
? | ? | ? | ? | ? | |
responseType = 'moz-blob' |
? | ? | ? | ? | ? |
[1] Gecko 11.0 (Firefox 11.0 / Thunderbird 11.0 / SeaMonkey 2.8) で、同期リクエストの実行時における responseType
および withCredentials
属性の使用のサポートを廃止しました。属性の使用を試みると、NS_ERROR_DOM_INVALID_ACCESS_ERR
例外が発生します。この変更は、W3C へ標準化の提案が行われました。
Gecko 12.0 (Firefox 12.0 / Thunderbird 12.0 / SeaMonkey 2.9) 以降で、data:
URL の読み込みで XMLHttpRequest
をサポートしました。
Gecko 20.0 (Firefox 20.0 / Thunderbird 20.0 / SeaMonkey 2.17) で、ArrayBufferView
の送信をサポートしました。ArrayBuffer
の送信は XMLHttpRequest
仕様に含まれおらず、非推奨として扱うべきです。
[2] この機能は ActiveXObject()
により実装していました。Internet Explorer 7 より、標準の XMLHttpRequest
を実装しています。
[3] sendAsBinary()
をサポートするポリフィルを使用できます。
[4] Blink/Chromium に切り替える前の Opera は、Opera 12 から 15 まで responseType=json
をサポートしていました。後に、Blink (Opera 17) で再び実装されました。
[5] この機能は bug 231959 で実装しました。
[6] how to set and handle timeouts をご覧ください。
関連情報
- XMLHttpRequest に関連する MDN の記事
- W3C およびブラウザベンダの XMLHttpRequest リファレンス:
- W3C: XMLHttpRequest (基本機能)
- W3C: XMLHttpRequest (基本機能の拡張についての最新のエディターズドラフト。公式には XMLHttpRequest Level 2 と呼ばれています。)
- Microsoft の文書
- Apple developers' reference
- "Using the XMLHttpRequest Object" (jibbering.com)
- XMLHttpRequest - REST and the Rich User Experience
- HTML5 Rocks - New Tricks in XMLHttpRequest2
- Thread on the naming convention of
XMLHttpRequest
Chrome scope availability
- DOM にアクセスしない JSM モジュールからアクセスする方法