我有一个使用$http.post()
进行Web服务调用的Angularjs应用程序。它调用的方法具有void
返回类型,并生成204(无内容)响应代码。这将进入.then()
回调中定义的错误函数,并打印"找不到元素"在日志中。
如果我从方法中返回任何内容,它将返回正常的200响应代码。
为什么成功代码会触发错误功能?
所要求的代码:
function myFn(inputData) {
var d = { data: inputData };
$http.post("../api/my/serverFn", d)
.then(
function(response) {
$rootScope.AddMsg("Success");
},
function(response) {
// The 204 response goes here.
$rootScope.AddMsg("Error");
});
}
答案 0 :(得分:6)
AngularJS本身并未将204响应视为错误。调查显示,如果收到的响应状态为204,则堆栈中的http拦截器拒绝承诺,将成功响应转为错误。