从API接收JSON对象时出错

时间:2017-06-05 08:07:11

标签: javascript json ionic-framework ionic2

我正在从离子应用程序(Angular4)发出http请求并以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 个答案:

答案 0 :(得分: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 ));