46

我正在使用 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);
    };
}
4

3 回答 3

107

只需将此添加到您的应用程序中

myAppModule.config(['$httpProvider', function($httpProvider) {
    $httpProvider.defaults.headers.common['X-Requested-With'] = 'XMLHttpRequest';
}]);
于 2014-05-27T21:10:50.760 回答
25

以前是,后来改了。(看这里)

“X-Requested-With 标头在实践中很少使用,通过一直使用它,我们会触发跨域请求的预检检查。”

来自 Thomas Pons 的回答

于 2013-09-25T13:19:37.503 回答
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' }
})
于 2016-03-10T15:11:25.367 回答