chrome-resource:// からだとクロスドメインXMLHttpRequestが(いちおう)使える

再度chromeのクロスドメインセキュリティチェック探訪chrome-resource://からなら、異なるドメインのiframeでもふつうに中身にアクセスできるのを見つけたのでXMLHttpRequestもクロスドメイン制約がなかったりするかなーと思って試してみたら、いちおう異なるドメインのページも読み込めました。

chrome-resource://にファイルを作る

chromeのインストールされている場所のresources/InspectorにてきとうなHTMLファイルを置くと、そのファイルにchrome-resource://****.htmlでアクセスできるようになります。ファイルを置くだけで、再起動とかしなくてすぐ読めるようになります。

path

作ったHTMLファイルの中身はこんなかんじ。

<html>
<head>
<title>chrome-resource:// cross origin XMLHttpRequest</title>
<script type="text/javascript">
window.addEventListener( 'load', function() {
try {
  var r = new XMLHttpRequest();
  r.open("GET", "http://ido.nu/kuma/", false);
  r.send(null);
}catch(e){
  document.body.innerHTML = (r.responseText)

  alert(e);
}
}, false);
</script>
</head>
<body></body>
</html>

ページを開くとNETWORK_ERRというのが出てくるものの、ページの中身自体はちゃんと読み込めます。
chrome-resource XMLHttpRequest
ただchromeの設計として読めるのが正しいのか読めないのが正しいのかわかんないです。

さらに非同期にするとreadyStateが2で止まっちゃって中身が空で読み込めないので事実上役に立たないですけど….


About this entry