マイAngular2(RC4)次のスニペットを使用して、私のWepApiからデータを取得します。Mozillaのカント解析JSON
getAppointment(id: number): Observable<Event> {
return this._http.get(this._serviceUrl + 'get/' + id)
.map(this.extractData)
.catch(this.handleError);
}
this.extractDataは以下のん:
private extractData(res: Response) {
let body = res.json();
return body || {};
}
をChromeで期待されるように、このすべての作品、 IE、エッジが、このエラーを投げMozillaで失敗:
JSON.parse: unexpected character at line 1 column 1 of the JSON data
これはバック@ angluar2/HTTPモジュールstatic_response.d.tsにつながります。
static_response.d.jsで/**
* Attempts to return body as parsed `JSON` object, or raises an exception.
*/
json(): any;
ので:
/**
* Attempts to return body as parsed `JSON` object, or raises an exception.
*/
Response.prototype.json = function() {
var jsonResponse;
if (http_utils_1.isJsObject(this._body)) {
jsonResponse = this._body;
}
else if (lang_1.isString(this._body)) {
jsonResponse = lang_1.Json.parse(this._body);
}
return jsonResponse;
};
なぜMozillaでこの仕事をdoesntの? これは@ angular2/httpのバグですか?
'console.log(res.text());'を 'extractData'の先頭に追加してみてください。そこにあるものを見ることができますか?おそらく、最初の文字は '<'です。なぜなら、APIから404があるからです。 – rinukkusu
実際には「<」で始まる「通常の」XMLがテキストに表示されます。 – Paul
これはAPIからのエラーメッセージだと思いますか? – rinukkusu