我有一个拦截器
if (response.status !== 200){
return $q.reject(response.statusText);
}
然后在我的$ http中我做
$http({
method: 'POST',
url: '/something/parameters',
data: JSON.stringify(data)
})
.success(function(data, status, headers, config) {
//
})
.error(handleError);
function handleError(data) {
console.log(data) //undefined?!
}
我未定义。
但是当我.error(function(data){ console.log(data) })
时,我得到了响应状态文本,为什么?我必须将功能分开,因为我需要触发服务。
答案 0 :(得分:1)
嗯,好几件事:
1)您没有在POST调用中提供数据参数。如果您不打算发布任何内容,只需使用获取,或至少删除','在url参数之后......
2)你用来进行$ http调用的结构是DEPRECATED,并且当它从beta发布时将在Angular 1.6中删除。请改用此签名:
$http({
method: 'POST',
url: '/someUrl',
data: hereTheDataYouWantToPost
}).then(function successCallback(response) {
// this callback will be called asynchronously when the response is available
}, function errorCallback(response) {
// called asynchronously if an error occurs or server returns response with an error status.
console.log(response.data);
});
3)响应数据现在附加到回调内的de响应参数...(即:response.data)。
请参阅Angular $http以获取完整参考资料