制限付きURIへのアクセスが拒否されました "コード:" 1012 [Break On This Error]
xhttp.send(null);
function getXML(xml_file) {
if (window.XMLHttpRequest) {
var xhttp = new XMLHttpRequest(); // Cretes a instantce of XMLHttpRequest object
}
else {
var xhttp = new ActiveXObject("Microsoft.XMLHTTP"); // for IE 5/6
}
xhttp.open("GET",xml_file,false);
xhttp.send(null);
var xmlDoc = xhttp.responseXML;
return (xmlDoc);
}
JavaScriptを使用してXMLファイルからデータを取得しようとしています。 FirefoxでFirebugをテストおよびデバッグするために使用しています。
上記のエラーは私が得ているものです。以前同じように使用した他の場所でも機能しますが、なぜここで奇妙な動作をするのですか?
なぜそれが起こっているのか誰かが私を助けることができますか?
http://jquery-howto.blogspot.com/2008/12/access-to-restricted-uri-denied-code.html
問題の原因を説明しているこのリンクを見つけました。しかし、私は与えられた解決策が誰かが詳しく説明できることを意味するのかわかりませんでしたか?
これのもう1つの考えられる原因は、ファイルシステムで直接.htmlファイルを操作している場合です。たとえば、ブラウザで次のURLを使用してアクセスしている場合:C:/Users/Someguy/Desktop/MyProject/index.html
その後、ajaxリクエストを行う必要がある場合、ファイルシステムへのajaxリクエストが制限されているため、ajaxリクエストは失敗します。これを修正するには、ローカルホストがC:/Users/Someguy/Desktop/MyProject
を指すWebサーバーをセットアップし、http://localhost/index.html
からアクセスします。
同一生成元ポリシー に違反しているようです。
サブドメイン、異なるポート、異なるプロトコルは異なるドメインと見なされます。
XMLを提供するサーバーサイドスクリプトに_Access-Control-Allow-Origin:*
_ヘッダーを追加してみてください。 PHP(header()
を使用できます)でそれを行わず、生のXMLファイルを読み取ろうとする場合は、おそらくヘッダーを。に設定する必要があります。 _Header set Access-Control-Allow-Origin "*"
_を追加してhtaccessファイルを作成します。さらに、_Access-Control-Allow-Headers:*
_を追加する必要がある場合があります。
また、本番モードで*を置き換えて、すべてのユーザーがデータを読み取れないようにし、代わりに独自のURLを追加することをお勧めします。
言うことのできないコードがなければ、クロスサイトajaxの制限に反する可能性があります。他のドメインにajaxリクエストを送信することはできません。