【发布时间】:2019-09-25 18:38:26
【问题描述】:
我有一个工作 Angular 项目,它使用 webapi2 连接到真实数据。目前我正在开发一个 express.js 项目,该项目为了演示目的而模拟数据,所以我不会使用真正的 webapi2,而是使用这个总是显示随机数据的 express 项目。角度项目调用一个需要 json 对象的 post api。但是调用总是返回错误。但是当使用邮递员调用它时它正在工作。
代码:
角度分量
onSubmit(valid: boolean = false): void {
...
this.service.save(request).subscribe(
result => {
console.log(result,"RHAILHYDRA");
...
},
error => {
console.log(error,"EHAILHYDRA");
...
})
}
角度服务.ts
public save(param: any): Observable < any > {
let uri = "some url";
let payLoad = {
"someId": param.id,
"someComment": param.comment
};
let headers = new HttpHeaders({
'If-None-Match': param.tag
});
return this.http.post <any> (uri, payLoad, {
headers: headers
});
}
uri 总是http://localhost:44309/demo/5b42/trade?valid=false
因为它是一个模拟,所以我没有考虑查询。因此 api 调用将在有/没有查询的情况下工作。
express.js 代码
var bodyParser = require('body-parser');
exports.register = function (app) {
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: true }));
app.post('/demo/:id/trade', function (req, res) {
res.status(200).json({
"validationMessages": [],
"overridable": true
});
});
};
当我单击提交按钮时,它总是出现错误“EHAILHYDRA”。
但是当我使用邮递员时,我得到了预期的结果。
任何线索都会非常有帮助。
更新 #1:
当我点击提交时,inspect:network 中没有调用此服务。
【问题讨论】:
-
你能在角度组件中评论
this.handleResponse(result)吗?我认为handleResponse方法有问题。 -
this.handleResponse()需要从 post 调用返回的 json 对象。这是第二个错误。 -
你能给我看看你的
handleResponse method吗,如果你能给出你的回复就太好了 -
handleresponse method没什么问题,它只需要一个 json 对象,我没有从 post 调用中得到它。错误请参见图 1,预期响应请参见图 2。我可以评论处理程序响应,但我仍然收到错误 -
你能不能把
node_module删掉重新安装。