【问题标题】:SyntaxError: Unexpected token C in JSON at position 0 - Ionic 2 Http GET requestSyntaxError:位置 0 处 JSON 中的意外令牌 C - Ionic 2 Http GET 请求
【发布时间】:2017-11-05 00:34:03
【问题描述】:

我正在尝试执行GET 请求并从响应中检索数据。

this.http.get('http://localhost:8888/maneappback/more-items.php').subscribe(res => {
    console.log(res.json());
}, (err) => {
    console.log(err);
});

我收到错误 SyntaxError: Unexpected token C in JSON at position 0。我还假设错误与请求有关。

在我的服务器端,我有这样发送的数据(PHP):

echo json_encode($array);

【问题讨论】:

  • 似乎不是有效的 JSON。你检查过你的网络标签吗?
  • console.log(res.json()) 也可能是错误的;它不会是一个函数。
  • @AJT_82 我查看了 more-items.php 的网络选项卡,响应如下所示:mysqli_result Object ( [current_field] => 0 [field_count] => 4 [lengths] => [num_rows] => 24 [type] => 0 ) ["\/9j\/4AAQSk................ - 最后一个数字是我试图通过 json 发送的 blob。
  • 这显然不是 JSON。
  • 直言不讳……您的 db-request 中发生了一些奇怪的事情。最好检查一下 php 代码,因为那是不正确的 :)

标签: javascript php json angular ionic-framework


【解决方案1】:

您看到的消息是您的 JSON 响应格式不正确

良好的 JSON:

{ "name":"John", "age":31, "city":"New York" }

错误的 JSON

    { 'name': 'john' }
    { name: "john" }

{ 'name' = 'john' }

在您的情况下,JSON 以字符 C 开头 请记住,有效的 Javascript 对象可能是无效的 JSON 格式

【讨论】:

    【解决方案2】:

    我只是没有意识到脚本中还有两个 echo 语句...这就是它未被识别为 JSON 的原因。

    【讨论】:

    • 我也有同样的问题;当我回显 json 时,我没有删除其他回声。
    【解决方案3】:

    就我而言:

    以前有错误:JSON.parse("{ createdTimestamp: -1 }")

    正确:JSON.parse('{"createdTimestamp":-1}')

    【讨论】:

      猜你喜欢
      • 2021-07-01
      • 2018-06-10
      • 2020-02-05
      • 2021-09-12
      相关资源
      最近更新 更多