AngularJS $资源未发送X-Requested-With

时间:2013-08-11 04:46:07

标签: angularjs xmlhttprequest

我正在使用angular 1.1.5并且我正在使用$ resource为一个REST服务创建一个XHR,但似乎$ resource没有将标头附加为X-Requested-With作为XMLHttpRequest, 是正常行为吗?并且我是否需要手动附加标题?

function loginCtrl($scope,$resource) {
    $scope.submit = function () {
         var resource = $resource('/Api/User/login', {},
              {
                  authenticate: {
                      method: 'POST',
                      isArray: false,
                      headers: {
                          '__RequestVerificationToken':  $scope.loginRequest.Token

                      }
                  }
              });
         resource.authenticate($scope.loginRequest);
    };
}

3 个答案:

答案 0 :(得分:106)

只需将此添加到您的应用

即可
myAppModule.config(['$httpProvider', function($httpProvider) {
    $httpProvider.defaults.headers.common['X-Requested-With'] = 'XMLHttpRequest';
}]);

答案 1 :(得分:25)

过去常常被改变了。 (see here)

“X-Requested-With标头在实践中很少使用并且使用 我们一直在触发跨域的预检检查 请求“。

来自Thomas Pons的回答here

答案 2 :(得分:2)

我遇到了同样的问题,我用以下方法解决了这个问题:

myApp.config(['$httpProvider', function($httpProvider) {
    $httpProvider.defaults.headers.common['X-Requested-With'] = 'XMLHttpRequest';
}]);

您也可以将标题设置为接受application/json

$http({
  method: 'GET',
  url: '/someUrl',
  headers: { Accept: 'application/json' }
})