我採用了棱角分明的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