下面我有以下Angular段似乎试图将响应作为JSON处理,即使'httpOptionsText'是一个常量定义为:
const httpOptionsText = {
headers: new HttpHeaders({
'Content-Type': 'text/plain'
})
};
addOrders(order, rootUri): Promise<DetailOrderbean[]> {
let body = JSON.stringify(order);
const url = rootUri + 'api/data/addDetailOrder?order=' + body;
return this.http.post<DetailOrderbean>(url, body, httpOptionsText)
.toPromise()
.then(res => {
console.log(res);
})
.catch(this.handleError);
}
另外,java正在指定
response.setContentType( "text/plain");
response.setHeader("Access-Control-Allow-Origin",
"http://localhost:4200");
response.setHeader("Access-Control-Allow-Credentials","true");
状态是200,所以我只想消耗错误。但是,如果发生实际错误,我需要在退出时使用handleError:
private handleError(error: any): Promise<any> {
console.error('An error occurred', error);
return Promise.reject(error.message || error);
}
我将一个结构不适当地强制转换为强制json转换的post()。这也可以通过编译错误看出:
属性“responseType”的类型不兼容。类型'“text”'不能分配给''json''。
这应该告诉我,我的返回响应类型出现了问题。