我采用了棱角分明的Http这样当缺少回应文本:角4 HTTP状态代码= 400
this.http
.post(url, JSON.stringify(data), this.createOptions())
.subscribe(response => {
... do something
}, error => {
if (error.status === 400){
...do something
}
else if (error.status === 500) {
...do something else
}
}),
}
的problema是,当我得到一个400
错误代码,服务器返回我的错误消息一个string
在身体。但是当响应进入catch
块时,这似乎消失了。服务器响应正确到达,我正在用邮差测试它,但是在角度上,身体被替换为其他东西。如果我使用error.text()
我得到这个,而不是错误消息:
"_body": {
"__zone_symbol__currentTask": {
"type": "microTask",
"state": "notScheduled",
"source": "Promise.then",
"zone": "angular",
"invoke": "invoke()function() {_numberOfNestedTaskFrames++; try { self.runCount++; return self.zone.runTask(self, this, arguments);\n }\n finally {\n if (_numberOfNestedTaskFrames == 1) {\n drainMicroTaskQueue();\n }\n
_numberOfNestedTaskFrames--;\n }\n }",
"cancelFn": null,
"runCount": 0,
"callback": "callback()function() {\n try {\n resolvePromise(chainPromise, true, zone.run(delegate, undefined,
[promise[symbolValue]]));\n }\n catch (error) {\n resolvePromise(chainPromise, false, error);\n }\n }"
}
},
我在做什么错?
我只是重读你的问题,并意识到我的回答是完全无益的,对不起。但是,在测试我的答案时,我碰到了你的问题。我得到那个奇怪的'_body'对象任何时候,我的API没有响应,因为无论是什么原因,像击中一个不存在的端点 – raykrow