我使用Angular $resource服务进行HTTP调用,例如
var reportEndpoint = $resource('http://example.org/:id');
reportEndpoint.get({id: 6}, function (response, responseHeaders) {
    $scope.report = response.data;
    // can I get here the URL that the request was submitted to
});在注释所指示的点上,是否有某种方法可以获取请求被提交到的URL,在上面的示例中是http://example.org/6
发布于 2016-02-12 07:16:28
您可以将拦截器添加到GET请求中,并将url附加到响应数据。例如,您可以执行以下操作:
var reportEndpoint = $resource('http://example.org/:id', {}, {
  get: {
    method: 'GET',
    interceptor: {
      response: function (response) {
        response.data.responseUrl = response.config.url;
        return response.data;
      }
});
reportEndpoint.get({id: 6}, function (response) {
  $scope.report = response;
  // returns http://example.org/6
  console.log($scope.report.responseUrl);
});发布于 2016-02-12 02:36:49
通过查看$resource的文档,我想不出任何直接检索url的方法。另一种但不是最优的方法是使用$httpParamSerializer再次编码数据,并将其附加到url,以重新创建发送请求时使用的url。
https://stackoverflow.com/questions/35346776
复制相似问题