2017-06-08 10 views
2

自分のファイルに文字列の配列を持っていますが、これはクライアントサイドのJavaScriptで変数として使用するためのものです。私は、様々な$.getJSONfunction loadJSON(callback){}ソリューションをしようとしてきたが、すべては私にエラーGET http://localhost:3001/strings.json 404 (Not Found)Javascriptでファイルから配列をインポート

(私もstrings.jsと呼ばれるファイルでそれを試してみましたが、取得したのと同じ結果)

両方strings.jsonファイルとを与えている私クライアント側のJavaScriptファイルは/public/js/ディレクトリにあります。そのため、パスの問題ではありません。

script.js

$.getJSON("strings.json", function(json){ 
    console.log(json); 
}); 

strings.json

["string 1","string 2","string 3", "string 4", "etc"] 

編集:実際には、関連する少量のコードを追加しました。私はstrings.jsonが実際にjsonではないことを認識していますが、最も論理的なファイルタイプのようです。何か良いことがあれば教えてください。

+0

コード全体を共有してください – brk

+0

ブラウザで「http:// localhost:3001/strings.json」を指定するとどうなりますか? " – Malvolio

+0

_" strings.jsonファイルとクライアントサイドJavaScriptファイルの両方が '/ public/js /'ディレクトリにあります "_、_" 'GET http:// localhost:3001/strings.json 404(見つからない)' "_あなたは/ public/js /'ディレクトリからリソースを要求していません。 '$ .getJSON()'に渡されたURLを '' http:// localhost:3001/public/js/strings.json "に変更してください。 – guest271314

答えて

2

エラーはそのままです、ファイルが見つかりませんでした

お客様の$.getJSONに指定したパスは、ご使用のウェブページの同じディレクトリにstrings.jsonを置かない限り間違っています。

は、関数内の絶対パスを配置してみ、IE:

$.getJSON("/public/js/strings.json", function(json){ 
    console.log(json); 
}); 

EDIT:それはすでに同じディレクトリにある場合は、パスを示すために、「./」でパスをリードしようとすることです同じディレクトリ:

$.getJSON("./strings.json", function(json){ 
    console.log(json); 
}); 

EDIT:最後に、あなたはまだ適切にナビゲートすることができない場合、また、あなたのサーバスクリプトから来る$.getJSONへのパラメータとしてパスを提出しようとすることができます。あなたはASPのC#を使用している場合、たとえば、あなたが使用することができます。

currPath = Page.ResolveUrl("~/public/js/strings.json"); 

を次に以下pathValのパラメータとしてcurrPathを渡す:PHPで

function getThis(pathVal){ 
     $.getJSON(pathVal, function(json){ 
      console.log(json); 
     }); 
     } 

または同等の何か。ただし、コードが乱雑になる可能性がありますが、動作することに注意してください。

関連する問題