2016-05-17 1 views
3

Я хочу получить мой Json-файл в response js, для этого я использую fetch. Но это показывает ошибкуReact Js: Uncaught (в обещании) СинтаксисError: Неожиданный токен <в JSON в позиции 0

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

Да. Я получаю html-мусор в fr.json. – iamsaksham

+0

Хорошо, я решил проблему. Во-первых, .json нужно загружать через 'localhost'. Поэтому я изменил 'fetch ('http: //localhost/img/fr.json')'. Далее я запускал свое приложение на localhost: 8080, поэтому возникла проблема с CORS, которая была устранена, отключив его через плагин chrome. В любом случае, спасибо @jcubic за то, что он дает хедз-ап, потому что иногда это не какая-то ошибка в коде. – iamsaksham

ответ

8

Добавить два заголовка Content-Type и Accept равным application/json.

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");}); 
} 
Смежные вопросы