2012-06-15 21 views
9

こんにちは、私のローカルマシンから.jsonファイルを読み込もうとしています。それは私が使用しているコードでそれを読むことはありませんです。私はこれから取得していますすべては私が間違っているの何を失敗したローカルディスク上のテキストファイルをjavascriptの変数に読み込むには

jQuery.getJSON('../json/test.json') 
    .done(function(data) { 
     var test = data; 
     alert("sucsess"); 
    }) 
    .fail(function(data){ 
    alert("failed"); 

}); 

。私はこれでサーバーを経由していません。あなたはセキュリティ上の理由などにJavaScriptを介して、ローカルマシン上のファイルをアセスすることはできません

+2

あなたのウェブサーバがローカルマシン上にない場合、これは動作しません。 – OptimusCrime

+0

どのようなエラーコードが表示されますか? – Bergi

答えて

9

使用するファイルのAPI内部でテスト変数を見ることができるように

2

....

JavaScriptとDOMは に悪質な作家の可能性を提供し、クライアント上で実行するスクリプトを提供ウェブを介してコンピュータ。ブラウザ 作成者には、2つの制限を使用してこのリスクが含まれています。まず、スクリプトは をサンドボックスで実行します。サンドボックスでは、ファイルの作成などの汎用プログラミングタスクではなく、Web関連の操作のみを実行できます。

しかし、私はこのウェブサイトを見つけましたが、試してみるには、多分あなたは助けること与えたことがありません: Reading local files in JavaScript

編集:をあなたがウェブサーバ上でコードを実行し、唯一それを実行するつもりはありませんしている場合あなたのローカルシステム(ブラウザでindex.htmlを呼び出す:C:/Users/user/index.htmlあなたはそれにアクセスすることができますが、もしこのウェブサイトがオンラインになるべきであれば、それはうまくいかないでしょう)

5

申し訳ありませんが、ローカルドライブからページを実行すると(アドレスバーの形式はfile:///あなたのページのパスになります)、 nディスクからファイルを読み込むことはできますが、Webサーバー(http://.....。)からスクリプトを実行すると、ローカルドライブからファイルを読み取ることができません。ユーザードライブから情報を盗むのを防ぎます。あなたはそれを読むためにファイルをアップロードする必要があります

編集:私はそれを取り戻す必要があります。新しいブラウザでは、ユーザーイベントに基づいてファイルを読むことができます。ユーザーがファイル入力をクリックしてファイルを開くと、それを読むことができます。

0

ローカルの(クライアント)システムではなくサーバー上のファイルについては、単純なjavascriptでは不可能です。ローカルファイルシステムリソースにアクセスすることはできません。あなたが唯一の機能(データ){...}

6

チェックこのfiddle

<title>reading Text files</title> 
<body> 
    <input type="file" id="files" name="files[]" multiple /> 
    <output id="list"></output> 
    <script> 
     function handleFileSelect(evt) { 
     var files = evt.target.files; // FileList object 

     // Loop through the FileList 
     for (var i = 0, f; f = files[i]; i++) { 

     var reader = new FileReader(); 

     // Closure to capture the file information. 
     reader.onload = (function(theFile) { 
      return function(e) { 
       // Print the contents of the file 
       var span = document.createElement('span');      
       span.innerHTML = ['<p>',e.target.result,'</p>'].join(''); 
       document.getElementById('list').insertBefore(span, null); 
      }; 
     })(f); 

     // Read in the file 
     //reader.readAsDataText(f,UTF-8); 
     //reader.readAsDataURL(f); 

     reader.readAsText(f); 
     } 
    } 
    document.getElementById('files').addEventListener('change', handleFileSelect, false); 
    </script> 
</body> 
関連する問題