スクリプト言語を初めて使用しています。私はnew.json
ファイルを持っていて、gary.html
HTMLファイルにロードしたい。私はgary.html
ファイルをサーバー上で実行したくありません。私は自分のマシンでローカルに実行したい。私のHTMLファイルが$.getJSON
を使用してnew.json
ファイルをロードしjQuery/Javascriptを使用してローカルシステムにJSONファイルをロードする
、私は空白の画面を取得し、私は、コンソール上でチェックすると、私はエラーを取得する:
jquery-3.1.0.js:9392 XMLHttpRequest cannot load file:///C:/Users/Gary/Desktop/new.json. Cross origin requests are only supported for protocol schemes: http, data, chrome, chrome-extension, https, chrome-extension-resource.`
と、この私のコードをロードする
function show() {
//read(a)
var myItems;
$.getJSON('new.json', function(data) {
myItems = data.a;
read(myItems)
});
}
私がこのエラーでグーグルで見つけたとき、人々は私にこのファイルをfirefoxで実行するか、またはchrome --allow-file-access-from-files
を実行するように提案します。ファイルがfirefoxで読み込まれていて、chrome --allow-file-access-from-files
を実行しているときに、ファイルもchromeで読み込まれます。
私が心配しているのは、new.json
とgary.html
ファイルを他の人に配布すると、他の人がfirefoxやchromeのchrome --allow-file-access-from-files
権限を持っているか持っていない可能性があるということです。私はちょうどgary.html
をクリックし、new.json
ファイルのデータをロードします。
どうすれば実現できますか?
これまで見てきたように、AJAXリクエストはローカルのファイルシステムには大きなセキュリティ上の問題であるため、作成できません。これに対する唯一の回避策は、ユーザーがブラウザで手動で設定を有効にすることです(とにかく素晴らしい考えではありません)。これを望まない場合は、すべての要求に対して中央サーバーを使用する必要があります。代わりに 'new.json'ファイルを余分な' 'タグ –
を使ってインクルードします。次に、' new.json'を変更して、標準オブジェクトと同じように解析してアクセスできる変数にオブジェクトを割り当てますAJAXコールの必要なしに –
@ RoryMcCrossan、どのように私はそれをドットすることができます。私のjsonファイルは次のようになります:** {"a":[ {"name": "avc"}、 {"name": "Anna"}、 {"name": "Peter"}]} * * – CLIX159