2017-06-15 1 views
0

AndroidとiOSでクロスプラットフォーム(html5)プロジェクトを開始すると、getJSONに問題が発生し、.jsonファイルからデータをローカルに読み込むクロムブラウザで。getJSONでjsonデータファイルをクロムにローカルにロードするとエラーが発生する

jQuery.getJSON("layout.json", this.onLoaded); 

を呼び出すとき、私はjqueryの - 3.2.1.jsで

Error: XMLHttpRequest cannot load file:///E:/app/layout.json. Cross origin requests are only supported for protocol schemes: http, data, chrome, chrome-extension, https`

を取得:9566である:xhr.send(options.hasContent && options.data || null);

私は解決策を探してインターネットをサーフし、これらを思い付いてきました私の場合にはうまくいかない2つの解決法:

  1. クロムで手動でアクセス制御許可を有効にする
  2. 私はローカルにJSONデータをロードするための解決策を探していますサーバー

上のプロジェクトファイルをアップロードします。

ご協力いただきありがとうございます。

+0

プロジェクトからいくつかのコードサンプルを追加してヘルプを入手してください。 – arturkin

+0

1.この「Eclipseクローン」IDEを「HBuilder」とし、ローカルWebサーバーでローカルファイルを自動的に表示するか、JSONをjsファイルとしてスレッド化して運用環境で使用するときに戻します。 –

+0

@arturkinここではコードサンプルを示します。エラーが発生しました: jQuery.getJSON( "layout.json"、this.onLoaded); エラー: XMLHttpRequestがfile:/// E:/app/layout.jsonを読み込めません。 Cross originリクエストは、http、data、chrome、chrome-extension、httpsのプロトコルスキームでのみサポートされています。 jquery-3.2.1.js:9566は次のとおりです。xhr.send(options.hasContent && options.data || null); – Mahmoud

答えて

1

このChromeの拡張機能は、Chromeで同じ問題で私を助け、をそれをチェックアウトを許可-Controlキーを許可-起源を:*

+0

ありがとうございます。はい、これは正常に動作しますが、私はクロスプラットフォームプロジェクトで作業していますので、そのような場合には別の方法がありますか? javascriptを使用してこのChromeポリシーを許可することはできますか? – Mahmoud

+0

私は言うことはできませんが、私はいくつかの研究をします – Jonathan

1

それがセキュリティですので、私はクロスブラウザのソリューションはないと思いますユーザーのデータを保護するための尺度であり、ブラウザのバーナーは実際に意図によってこれをブロックします。 Chromeでは、起動時に--allow-file-access-from-filesオプションを使用できますが、これは通常のユーザーが受け入れるものではなく、特定のファイルのみの設定を制限する方法はありません。そのため、セキュリティ上の問題が再び発生します。あなたはローカルサーバーを作成した場合

それでも、あなたは、サーバー上のファイルをロードしているページをロードしたいファイルを入れて、これが可能になります。これはかなり可能ですが、Android用や他のOS用のローカルサーバーが数多くあります。

PSブラウザ拡張を作成することもできます。 Chromiumの拡張機能は最近Opera(Opera、Vivaldi、Yandexなど)やFireFoxなど、多くのブラウザでサポートされているため、興味深い選択肢になるかもしれません。しかし、拡張の正確な限界を知る必要があります。私はこの分野の専門家ではありません。

関連する問題