【问题标题】:Unexpected SyntaxError: Unexpected token : from JSON data (AngularJS Api Request)Unexpected SyntaxError: Unexpected token : from JSON data (AngularJS Api Request)
【发布时间】:2017-12-09 10:46:14
【问题描述】:

所以我收到了这个错误,当我点击它旁边显示的链接时,它会将我带到一些 json 响应:

{"link-canonical":"https:\/\/myanimelist.net\/anime\/1\/Cowboy_Bebop",.....}

我只是提出一个动漫 api 的获取请求。显然,它检索到的 json 中的这个冒号给了我错误..?我不知道。我的请求代码肯定是有效的,但我只是用另一个运行良好的 api url 试了一下。

这是请求的代码:

myApp.controller('mainController', ['$scope', '$resource', function($scope, $resource) {

$scope.animeApi = $resource('http://jikan.me/api/anime/1', {callback: "JSON_CALLBACK"}, { get: { method: "JSONP" }});

$scope.animeResult = $scope.animeApi.get({});
console.log($scope.animeResult);

}]);

【问题讨论】:

  • 你为什么要反斜杠?
  • @VictoryOsikwemhe 这就是响应中返回的 json。
  • 当响应为 JSON 时,{ method: "JSONP" } 显然是错误的
  • 为什么是JSONP?服务器发送Access-Control-Allow-Orgin: *

标签: javascript angularjs json api get-request


【解决方案1】:

所以你知道该怎么做了:

let str = {"link-canonical":"https:\/\/myanimelist.net\/anime\/1\/Cowboy_Bebop"};
let data = JSON.parse(JSON.stringify(str));

【讨论】:

  • 在神奇地忽略语法错误之后,她应该将对象转换为字符串,然后将这个字符串解析回对象? O.o
  • @Andreas 语法错误?在哪里?这不是她从该动漫服务器获得的有效 JSON。 stringify 之后:{"link-canonical":"myanimelist.net/anime/1/Cowboy_Bebop"},(希望你能看到区别)。解析后,她得到了一个普通的 JSON 对象。
猜你喜欢
  • 2017-06-22
  • 2018-06-18
  • 2016-01-31
  • 1970-01-01
  • 2011-12-17
  • 1970-01-01
  • 2017-10-11
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多