Internet Explorer 系列 で クロスドメイン通信 を行う場合、
IE8, IE9 だと XDomainRequest
、IE10 では XMLHttpRequest
を利用します。
ここでは、似て非なる両者を比べてその違いをまとめます。
(IE7 以前は調べていません。。)
ちなみに、Chrome や Firefox はかなり以前から XmlHttpRequest level 2 (クロスドメイン通信) 対応しているようです(詳細はこちら)。
XDomainRequest の 機能制約
XDomainRequest は XMLHttpRequest level 2 に比べて、以下の制約があるようです。
- スキーマ は http か https のみ 利用可能
- メソッド は GET か POST のみ 利用可能
- カスタムヘッダー は 利用不可能
- Content-Type は text/plain のみ 利用可能
- クッキー は 利用不可能
イベント、関数、プロパティの違い
XDomainRequest | XMLHttpRequest level 2 | |
イベント | onerror | |
onload | ||
onprogress | ||
onreadystatechange | ||
ontimeout | ontimeout | |
関数 | abort | abort |
addEventListener | ||
dispatchEvent | ||
getAllResponseHeaders | ||
open | open | |
removeEventListener | ||
send | send | |
setRequestHeader | ||
プロパティ | constructor | constructor |
contentType | ||
readyState | ||
response | ||
respnseText | responseText | |
responseType | ||
responseXML | ||
status | ||
statusText | ||
timeout | timeout | |
withCredentials |
今回、参考にしたサイトは以下の通りです。
- XMLHttpRequest object
- XDomainRequest object
- XDomainRequest - Restrictions, Limitations and Workarounds
- Can I use XMLHttpRequest 2?
最後に… このブログに興味を持っていただけた方は、 ぜひ 「Facebookページ に いいね!」または 「Twitter の フォロー」 お願いします!!