web-dev-qa-db-ja.com

AJAX Chromeで動作しないローカルファイルシステムへのリクエスト?

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>");
        });
    }
});
16
vibog

Firefoxは、ローカルファイルシステム(つまり、file://プロトコル)へのリクエストも受け付けているため、リクエストを許可します。ただし、Chromeはfile:// URLへのすべてのXMLHttpRequestを拒否します。

どちらのブラウザでも、外部ドメインからローカルファイルシステムへのAJAXリクエストを行うことはできません。これはmassive可能であれば、セキュリティ上の欠陥。

このためにAJAXで動作するリクエストChromeウェブサーバーにリクエストを行う必要があります。Windowsを使用している場合、簡単にインストールできます [〜#〜] iis [〜#〜] または [〜#〜] wamp [〜#〜] はローカルマシン上で。

Googleの設定を有効にできることに注意してくださいChromeブラウザからローカルファイルシステムへのリクエストを許可しますが、実際に使用することはお勧めしません。とにかくこれを行うと、ガイドが見つかります こちら

21
Rory McCrossan