使用 $httpBackend .then promise 有效,但 .success 回调无效
With $httpBackend .then promise works but .success callback doesn't
我的测试文件中有以下后端定义:
authRequestHandler = $httpBackend.whenPOST(my_request_url)
.respond(
{
userId: 'panda',
token: 'panda_token'
});
在我的控制器中我尝试了两个请求:
$http.post(SignUpUrl)
.success(function (results, status, headers, config) { //this doesn't work
$scope.data = results.data;
});
和
$http.post(SignUpUrl)
.then(function (results) { //this works
$scope.data = results.data;
});
正如我在评论中指出的那样,“.then”承诺捕获了假响应,而“.success”回调没有(我没有收到任何错误,但调试器甚至没有进入回调的闭包.
知道为什么吗?
谢谢:)
.success 将结果对象展开,因此第一个参数是数据而不是响应对象。因此,以下更改应该适用于您的通话:
$http.post(SignUpUrl)
.success(function (data, status, headers, config) { //this doesn't work
$scope.data = data;
});
此外,如果您正在链接 promise,如果您 return 在 .成功功能。
我的测试文件中有以下后端定义:
authRequestHandler = $httpBackend.whenPOST(my_request_url)
.respond(
{
userId: 'panda',
token: 'panda_token'
});
在我的控制器中我尝试了两个请求:
$http.post(SignUpUrl)
.success(function (results, status, headers, config) { //this doesn't work
$scope.data = results.data;
});
和
$http.post(SignUpUrl)
.then(function (results) { //this works
$scope.data = results.data;
});
正如我在评论中指出的那样,“.then”承诺捕获了假响应,而“.success”回调没有(我没有收到任何错误,但调试器甚至没有进入回调的闭包.
知道为什么吗?
谢谢:)
.success 将结果对象展开,因此第一个参数是数据而不是响应对象。因此,以下更改应该适用于您的通话:
$http.post(SignUpUrl)
.success(function (data, status, headers, config) { //this doesn't work
$scope.data = data;
});
此外,如果您正在链接 promise,如果您 return 在 .成功功能。