我试图通过codecraft运行Observables的Angular教程(这里:https://codecraft.tv/courses/angular/http/http-with-observables/) 但是一旦我输入任何字符,我就会在Chrome浏览器上报告此错误。
ERROR SyntaxError: Unexpected token J in JSON at position 2
at Object.parse (<anonymous>)
at Response.webpackJsonp../node_modules/@angular/http/@angular/http.es5.js.Body.json (http.es5.js:797)
at MapSubscriber.<anonymous> (itunes.service.ts:21)
at MapSubscriber.webpackJsonp../node_modules/rxjs/operator/map.js.MapSubscriber._next (map.js:77)
at MapSubscriber.webpackJsonp../node_modules/rxjs/Subscriber.js.Subscriber.next (Subscriber.js:89)
等等。看起来问题在于这段代码:
let apiURL = `${this.apiRoot}?term=${term}&media=music&limit=20&callback=JSONP_CALLBACK`;
return this.http.get(apiURL)
.map(res => {
return res.json().results.map(item => { // This seems to be the problem line 21
return new SearchItem(
item.trackName,
item.artistName,
item.trackViewUrl,
item.artworkUrl30,
item.artistId
);
});
});
这是教程中的错误,或者在请求的URL处发生了变化,或者在Angular中有什么变化(我正在使用4.3.1)。我正在使用Angular IDE进行编辑,它在代码中没有显示任何错误。对此类问题的大多数其他响应都指向返回的对象不是json格式。我担心我对HTML传输的变幻莫测或json调试没有充分了解,以便找到更多信息。