Angular 4 Restful Post响应,带有“ SyntaxError:JSON.parse处的JSON输入意外结束”

时间:2018-09-06 16:39:54

标签: json angular

在下面,我有以下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);
}

1 个答案:

答案 0 :(得分:0)

我不适当地将结构强制转换为post(),这迫使json转换。这也可以通过类似的错误看到:

  

属性“ responseType”的类型不兼容。   不能将类型“文本”分配给类型“ json”。

这应该告诉我我的返回响应类型有问题。