angularjs

时间:2016-11-16 09:46:09

标签: javascript angularjs http

我有一个拦截器 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) })时,我得到了响应状态文本,为什么?我必须将功能分开,因为我需要触发服务。

1 个答案:

答案 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以获取完整参考资料