Мои 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.
/**
* Attempts to return body as parsed `JSON` object, or raises an exception.
*/
json(): any;
и, таким образом, в static_response.d.js:
/**
* 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? Это ошибка в @ angular2/http?
Не могли бы вы попробовать добавить 'console.log (res.text());' в начале 'extractData' - просто посмотреть, что там? Возможно, первый символ '' 'из-за 404 из api. – rinukkusu
Текст показывает «нормальный» XML, который действительно начинается с «<» .. – Paul
Я думаю, это сообщение об ошибке из API? – rinukkusu