Angular HttpClient导致错误
我正在使用Angular 4,希望开始使用Angular HttpClient导致错误,angular,Angular,我正在使用Angular 4,希望开始使用HttpClient。然而,我得到了JSON解析错误,经过大量搜索,我还不能修复它 旧方法 import { Injectable } from '@angular/core'; import { Observable } from 'rxjs/Observable'; import { Http, Response, Headers, RequestOptions } from '@angular/http'; import { _throw } fr
HttpClient
。然而,我得到了JSON解析错误,经过大量搜索,我还不能修复它
旧方法
import { Injectable } from '@angular/core';
import { Observable } from 'rxjs/Observable';
import { Http, Response, Headers, RequestOptions } from '@angular/http';
import { _throw } from 'rxjs/observable/throw';
import { AppConfig } from '../config/app.config';
import { AuthenticateService } from '../security/shared/authenticate.service';
import { IFlower } from './flower.model';
addFlower(Flower: IFlower): Observable<any> {
this._auth.checkToken();
const headers = new Headers();
this.createAuthorizationHeader(headers, this._auth.token);
headers.append('Content-Type', 'application/json');
this.options = new RequestOptions({ headers: headers });
return this._http.post(this.apiUrl + 'flower/insert', JSON.stringify(Flower),
this.options).map((res: Response) => <any>res).catch(this.handleError);
}
我一直在四处寻找其他消息来源。所以post解释了HttpClient,但这仍然不能解决我的错误。非常感谢您的帮助。
感谢Angular's
HttpClient
最近的突破性变化,这意味着使用HTTP 200 OK
响应反序列化JSON正文,并使用空内容,现在会触发此“JSON数据…处的数据意外结束”错误,因为它应该使用HTTP 204 No content
。请看这里:
有3种可能的修复方法:
{responseType:“text”}
)戴,谢谢你的回复。在测试了所有3个场景之后,我将尝试发布一个响应。
import { Injectable } from '@angular/core';
import { Observable } from 'rxjs/Observable';
import { HttpClient, HttpHeaders } from '@angular/common/http';
import { _throw } from 'rxjs/observable/throw';
import { AppConfig } from '../config/app.config';
import { AuthenticateService } from '../security/shared/authenticate.service';
import { IFlower } from './flower.model';
addFlower(Flower: IFlower): Observable<any> {
this._auth.checkToken();
const httpOptions = {
headers: new HttpHeaders({
'Authorization': 'Bearer ' + this._auth.token,
'Content-Type': 'application/json'
})
};
return this._http.post<any[]>(this.apiUrl + 'flower/insert', JSON.stringify(Flower), httpOptions)
.pipe(
catchError(this.handleError)
);
}
[HttpPost]
[Route("insert")]
public HttpResponseMessage AddFlower(Flower flower)
{
try
{
_flowerervice.AddFlower(flower, token));
return Request.CreateResponse(HttpStatusCode.Created);
throw new HttpResponseException(Request.CreateErrorResponse(HttpStatusCode.Forbidden, "Forbidden"));
}
catch (Exception exception)
{
throw ExceptionMessageUtility.HttpResponse(Request, exception);
}
}