Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/370.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 承诺总是被拒绝_Javascript_Angular_Rest_Promise - Fatal编程技术网

Javascript 承诺总是被拒绝

Javascript 承诺总是被拒绝,javascript,angular,rest,promise,Javascript,Angular,Rest,Promise,我已经编写了一个简单的rest服务作为后端,我从我的前端网页调用它。下面是拨打电话的前端代码。 无论是否提供了有效人员,承诺都会被拒绝,并显示错误消息 savePerson(person: Person) { const jsonHeader = 'application/json'; const jsonPerson = JSON.stringify(person); return new Promise((resolve, reject) => {

我已经编写了一个简单的rest服务作为后端,我从我的前端网页调用它。下面是拨打电话的前端代码。 无论是否提供了有效人员,承诺都会被拒绝,并显示错误消息

savePerson(person: Person) {
    const jsonHeader = 'application/json';
    const jsonPerson = JSON.stringify(person);

    return new Promise((resolve, reject) => {
        this.httpClient.post(this.url, jsonPerson, {
            headers: new HttpHeaders()
                .set('Accept', jsonHeader)
                .set('Content-Type', jsonHeader)
        })
            .toPromise()
            .then(
                res => { // Success
                    console.log("success");
                    resolve(res);
                },
                res => {
                    console.log("rejected");
                    reject(res)
                }
            );
    });
}
用户按下按钮后调用此代码:

 savePerson() {

    this.myService.savePerson(this.person).then(
        result => {
            this.showMessage("Saved");
        },
        error => {
            console.log(error);
            this.showMessage("Error when saving")
        }
    );
}
输入有效人员时记录的错误: 对象{标头:{…},状态:201,状态文本:已创建,url:,确定:false,名称:HttpErrorResponse,消息:解析期间Http失败,错误:{…}

我假设这是前端应用程序的问题,因为后端返回创建的HTTP 201。
如果有人能帮我找出问题,那就太好了

Angular正在尝试解析HTTP响应,我猜您的服务器正在以空白HTTP响应进行应答。告诉Angular响应只是文本应该修复错误:

this.httpClient.post(this.url, jsonPerson, {
    responseType: 'text',
    headers: new HttpHeaders()
        .set('Accept', jsonHeader)
        .set('Content-Type', jsonHeader)
})

错误:{…}说明了什么?不管它值多少钱,这段代码都成了牺牲品。根本不需要新的承诺。避免新的承诺!