Ошибка при получении объекта JSON из API

Я делаю HTTP-запрос от ионного приложения (Angular4) и получаю ответ в виде объекта Js, но при получении я получаю некоторую ошибку.

Это объект, который я получаю от API

{"up_votes":"1","down_votes":"0"}

используя http.get для получения данных в app, home.ts

..
public vote_response:any={};
...
this.http.get(this.baseURI+'votesNum.php?'+this.question.question_id)
        .subscribe(result =>{this.vote_response = result.json();});

это ошибка, которую я получаю:

ERROR SyntaxError: Unexpected token < in JSON at position 0
    at JSON.parse (<anonymous>)
    at Response.Body.json (http.es5.js:800)
    at MapSubscriber.project (forum-quest-details.ts:44)
    at MapSubscriber._next (map.js:77)
    at MapSubscriber.Subscriber.next (Subscriber.js:89)
    at XMLHttpRequest.onLoad (http.es5.js:1229)
    at t.invokeTask (polyfills.js:3)
    at Object.onInvokeTask (core.es5.js:4119)
    at t.invokeTask (polyfills.js:3)
    at r.runTask (polyfills.js:3)

Может ли кто-нибудь помочь мне решить эту проблему.

1 ответ

this.vote_response = result.json();

Замените этот на console.log(result) и возьмите данные и проверьте на каком-нибудь онлайн-сайте проверки JSON ( https://jsonlint.com/), чтобы убедиться, что данные являются действительными JSON. Вы можете получить тело HTML вместо JSON.

Чтобы ответить как JSON:

header('Content-Type: application/json');
echo  json_encode(array('up_votes'=>$up_votes, 'down_votes'=> $down_votes ));
Другие вопросы по тегам