gpt4 book ai didi

javascript - promise 总是被拒绝

转载 作者:行者123 更新时间:2023-12-03 02:58:49 27 4
gpt4 key购买 nike

我编写了一个简单的休息服务作为后端,我从前端 Angular 网页调用它。下面是进行调用的前端代码。无论是否给出有效的人, promise 都会被拒绝并显示错误消息。

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")
}
);
}

记录的错误(输入有效人员):对象{ header :{…},状态:201,statusText:“已创建”,url:“http://localhost:8080/api/v1.0/person”,ok:false,名称:“HttpErrorResponse”,消息:“解析http://localhost:8080/api/v1.0/person时出现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)
})

关于javascript - promise 总是被拒绝,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47497793/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com