在下面,我有以下Angular片段,即使'httpOptionsText'是定义为以下常量的常量,它似乎也试图将其作为JSON处理>
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);
}
答案 0 :(得分:0)
我不适当地将结构强制转换为post(),这迫使json转换。这也可以通过类似的错误看到:
属性“ responseType”的类型不兼容。 不能将类型“文本”分配给类型“ json”。
这应该告诉我我的返回响应类型有问题。