2016-08-11 11 views
0

スクリプト言語を初めて使用しています。私は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.jsongary.htmlファイルを他の人に配布すると、他の人がfirefoxやchromeのchrome --allow-file-access-from-files権限を持っているか持っていない可能性があるということです。私はちょうどgary.htmlをクリックし、new.jsonファイルのデータをロードします。

どうすれば実現できますか?

+0

これまで見てきたように、AJAXリクエストはローカルのファイルシステムには大きなセキュリティ上の問題であるため、作成できません。これに対する唯一の回避策は、ユーザーがブラウザで手動で設定を有効にすることです(とにかく素晴らしい考えではありません)。これを望まない場合は、すべての要求に対して中央サーバーを使用する必要があります。代わりに 'new.json'ファイルを余分な'

1

その後
// new.json 
var newJson = {"a": [{"name":"avc"}, {"name":"Anna"}, {"name":"Peter"}]} 

gary.html中:あなたはまた、ファイル内のオブジェクトを変数に割り当てるには、このようなものが必要になります巨大なセキュリティ問題。 JSONデータを直接HTMLファイルに直接組み込むことができないのはなぜですか?あなたはJSONをフェッチするためにAJAX呼び出しを行う必要はありません。

<head> 
<script> 
var jsonData = '{"a": [{"name":"avc"}, {"name":"Anna"}, {"name":"Peter"}]}'; 
for(var i=0; i< jsonData.a.length;i++) 
{ 
var item = jsonData.a[i]; 
console.log(item.name); 
} 
</script> 
</head> 
関連する問題