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 の フォロー」 お願いします!!