2016-05-17 7 views
3

私はreact jで自分のJsonファイルを取得したいのですが、これはfetchです。しかし、それは誤りである可能性がどのようなReact Js:Uncaught(約束しています)SyntaxError:予期しないトークン<位置0のJSONで

Uncaught (in promise) SyntaxError: Unexpected token < in JSON at position 0

エラーを示して、私は何の手がかりを得ていないのです。私はJSONを検証しました。

handleGetJson(){ 
    console.log("inside handleGetJson"); 
    fetch(`./fr.json`) 
    .then((response) => response.json()) 
    .then((messages) => {console.log("messages");}); 
} 

私のJSON(fr.json)

{ 
    "greeting1": "(fr)choose an emoticon", 
    "addPhoto1": "(fr)add photo", 
    "close1": "(fr)close" 
} 
+0

回答のページが表示される場合は、開発者ツールのネットワークタブを見てください。 – jcubic

+0

うん。私はfr.jsonでいくつかのゴミhtmlを取得しています。 – iamsaksham

+0

さて、問題を解決しました。まず、.jsonを 'localhost'経由でロードする必要があります。だから私は 'fetch( 'http://localhost/img/fr.json')'を変更しました。さらに私はlocalhost:8080上で私のアプリケーションを実行していたので、CORSの問題が発生したので、クロームプラグインで無効にしていました。とにかく@jububicが頭を上げてくれてありがとうございました。なぜなら、時にはコード内に何らかの欠陥がないからです。 – iamsaksham

答えて

8

application/jsonに等しくなるように2つのヘッダContent-TypeAcceptを追加します。

handleGetJson(){ 
    console.log("inside handleGetJson"); 
    fetch(`./fr.json`, { 
     headers : { 
     'Content-Type': 'application/json', 
     'Accept': 'application/json' 
     } 

    }) 
    .then((response) => response.json()) 
    .then((messages) => {console.log("messages");}); 
} 
関連する問題