- 2010-11-16 (火)
- 技術
XMLHttpRequest(Ajax)はもともとは他のドメインへのリクエストは出来なかったのですが、結構前2009年の8月ぐらいにW3Cのドラフトが出てそれ以来各ブラウザが搭載し始めているのが現状。
XMLHttpRequest Level 2
とりあえず対応しているブラウザをちょっと調べてみましたので、メモメモー!
今回は僕が使っている2つのドメインをサンプルとして使っています。
もし、ためされる場合は適宜ご自分のドメインに読み替えてください。
.htaccess
まず
「http://lab.hisasann.com/XHR2/」
の配下に「.htaccess」ファイルを用意して、
Header append Access-Control-Allow-Origin: *
と書いておきます。
これでどこからXMLHttpRequestでアクセスしてきてもOKだよ〜という意味になります。
(ローカルファイルからでもOKです)
それだとちょっと実験としては面白くなかったので、以下の別のドメイン「http://hisasann.sakura.ne.jp」からのアクセスだけを許容するように設定してみました。
Header append Access-Control-Allow-Origin: http://hisasann.sakura.ne.jp
つまり
http://hisasann.sakura.ne.jpからhttp://lab.hisasann.com/XHR2/に対してXMLHttpRequestでアクセスするという感じになります。
json.json(サンプル用json)
先ほどの.htaccessと同じディレクトリにjson.jsonというサンプル用のjsonを置いておきました。
{
"test": "ほげほげ"
}
XMLHttpRequestのサンプルコード
どうもIE8だけはXMLHttpRequestではなく、独自のXDomainRequestというのを使わないといけないみたい。
各ブラウザの対応表(2010-11-16現在)
以下のURLに各ブラウザでアクセスしてみました。
http://hisasann.sakura.ne.jp/XMLHttpRequest2.html
その結果が以下の表です。
結構対応しているんですよね!!
Mac
- Firefox3.6.12
- OK
- Safari5.0
- OK
- Chrome 7.0
- OK
- Opera10.10
- NG
Windows
- Firefox3.5.9
- OK
- Safari5.0
- OK
- Chrome 7.0
- OK
- Opera10.10
- NG
- IE8
- OK
- IE7
- NG
- IE6
- NG
ちなみにIE8でブラウザモードをIE7にしても、XMLHttpRequestでアクセスできちゃうのねんっ!
IETesterのIE7でアクセスしたらちゃんとアクセスが拒否されました。
■関連記事
・XML Http Request Level2 の噂を聞いたので調べてみた
・XMLHttpRequest Level 2 と wedata バックアップ - 0xFF
Trackback:0
- TrackBack URL for this entry
- http://hisasann.com/cgi-bin/mt/mt-tb.cgi/1266
- Listed below are links to weblogs that reference
- XMLHttpRequest level2に対応しているブラウザまとめ from HouseTect, JavaScriptな情報をあなたに