使用 $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 在 .成功功能。