【问题标题】:Error in receiving JSON object from API从 API 接收 JSON 对象时出错
【发布时间】:2017-11-05 23:03:51
【问题描述】:

我正在从 ionic 应用程序(Angular4)发出一个 http 请求并以 Js 对象的形式接收响应,但在接收时我遇到了一些错误。

这是我从 API 接收的对象

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

在app、home.ts中使用http.get接收数据

..
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)

谁能帮我解决这个问题。

【问题讨论】:

  • 您可能没有收到您认为的对象。调试代码并检查。
  • Arg0n 有一点。您可能正在接收和 xml。暗示第一个字符是“
  • 尝试 JSON.stringify 结果并 console.log 它,然后看看它说了什么。可能有几件事,比如你的参数是错误的,它会发送一个 html 页面作为回报或什么
  • 我认为通过该请求,您正在获取 php 文件而不是 JSON 字符串,这就是为什么您在位置 0 处获得 &lt; 的原因。您应该检查 url this.baseURI+'votesNum.php?'+this.question.question_id 是否正确。
  • 是的,你是正确的 Arg0n。我得到这是 _body 的 console.log(res) 的输出:&lt;br /&gt;↵&lt;b&gt;Notice&lt;/b&gt;: Undefined index: question_id in &lt;b&gt;C:\xampp\htdocs\success\team\votesNum.php&lt;/b&gt; on line &lt;b&gt;5&lt;/b&gt;&lt;br /&gt;↵{"up_votes":"0","down_votes":"0"} 我正在使用 echo json_encode(array('up_votes'=&gt;$up_votes, 'down_votes'=&gt; $down_votes )); 从 php 服务器获得响应,谁能告诉我如何解决这个问题?跨度>

标签: javascript json ionic-framework ionic2


【解决方案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 ));

【讨论】:

  • 是的,你是对的。我得到这是 console.log(res) _body 的输出:
    通知:未定义索引:C:\xampp\htdocs\success\team\ 中的 question_id votesNum.php5
    ↵{"up_votes":"0","down_votes":"0"} 我正在使用 echo 从 php 服务器获取响应json_encode(array('up_votes'=>$up_votes, 'down_votes'=> $down_votes ));谁能告诉如何解决这个问题?
猜你喜欢
  • 1970-01-01
  • 2023-03-10
  • 1970-01-01
  • 2018-05-30
  • 2019-11-17
  • 2017-03-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多