虽然我的后端工作正常,但我从Postman精心设计的请求中得到了正确答案
我无法在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的第三个)
为什么回复未定义?
*网址代码中的哈希值是我的。
答案 0 :(得分:0)
当您在Postman中发出请求时,您将在请求中的标头的Auth属性中传递令牌。在你的代码中,你没有。
答案 1 :(得分:0)
从您的REST API请求中,您收到状态为422的响应,这意味着您遇到了客户端错误。关于您的请求,您必须在出现错误时处理请求。要处理异步请求中的错误,需要使用.then(mySuccessMethod(), myMethodOnError())
方法的第二个参数。
$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;
});
};