JQueryを使用してXMLからUIを動的に作成する作業をしています。私のjQueryはFirefoxで動作していますが、Chromeでは動作していません。次のコンソールエラーが表示されます。
Cross Originリクエストは、http、data、chrome、chrome-extension、https、chrome-extension-resourceのプロトコルスキームでのみサポートされています。
以下は、Firefoxでは動作するがGoogleクロムでは動作しない私のjQueryコードです。
$.ajax({
url: 'file:///home/satendra/dndExamples/avisDnD/file.xml',
success: function(xml) {
$(xml).find('Tab').each(function() {
var id = $(this).attr('URL');
var tab = $(this).attr('TabName');
$("ul").append("<li><a href="+ id +">"+ tab +"</li>");
});
}
});
Firefoxは、ローカルファイルシステム(つまり、file://
プロトコル)へのリクエストも受け付けているため、リクエストを許可します。ただし、Chromeはfile://
URLへのすべてのXMLHttpRequestを拒否します。
どちらのブラウザでも、外部ドメインからローカルファイルシステムへのAJAXリクエストを行うことはできません。これはmassive可能であれば、セキュリティ上の欠陥。
このためにAJAXで動作するリクエストChromeウェブサーバーにリクエストを行う必要があります。Windowsを使用している場合、簡単にインストールできます [〜#〜] iis [〜#〜] または [〜#〜] wamp [〜#〜] はローカルマシン上で。
Googleの設定を有効にできることに注意してくださいChromeブラウザからローカルファイルシステムへのリクエストを許可しますが、実際に使用することはお勧めしません。とにかくこれを行うと、ガイドが見つかります こちら 。