响应未成功定义$ http call angularJS

时间:2018-01-03 19:18:57

标签: angularjs http response

虽然我的后端工作正常,但我从Postman精心设计的请求中得到了正确答案

src

我无法在angularJS控制器中看到响应。 (我在控制器内执行此调用以简化情况)

$scope.click = function (auction_id) {
    $http({
        url: baseUrl + 'auctions/' + auction_id +'/followers',
        headers: {
            'Content-Type' : 'application/vnd.api+json'
        },
        method: 'POST'
    })
        .then(function(response) {
            console.log(response);
        })
        .catch(function(response) {
            return response;
        });
};

我通过httpInterceptor传递令牌,这对我的应用程序的其余部分工作正常。

网址是正确的,因为我在控制台中获得了有效的错误编号:

  

POST ################## / v1 / auctions / 172 / followers

     

422(不可处理的实体)

     

CategoryCtrl.js:64 undefined

64行是一个控制台成功登录.then(function...

标题符(我相信是)邮递员标签的响应标题(第一个屏幕截图中的Body的第三个)

src

为什么回复未定义?

*网址代码中的哈希值是我的。

2 个答案:

答案 0 :(得分:0)

当您在Postman中发出请求时,您将在请求中的标头的Auth属性中传递令牌。在你的代码中,你没有。

答案 1 :(得分:0)

从您的REST API请求中,您收到状态为422的响应,这意味着您遇到了客户端错误。关于您的请求,您必须在出现错误时处理请求。要处理异步请求中的错误,需要使用.then(mySuccessMethod(), myMethodOnError())方法的第二个参数。

  

有关promisses的.then().catch()方法的详细信息。

$scope.click = function (auction_id) {
$http({
    url: baseUrl + 'auctions/' + auction_id +'/followers',
    headers: {
        'Content-Type' : 'application/vnd.api+json'
    },
    method: 'POST'
})
    .then(function(response) {
        console.log(response);
    }, function(error) {
        // Here goes your code to handle an error with status 4XX 
        console.log(error)
    })
    .catch(function(response) {
        // Catch will come when you throw an error
        return response;
    });
};