问题
I'm using angular 1.1.5 and I'm using a $resource to make a XHR to a REST service but it seems like the the $resource isn't appending the header as X-Requested-With as XMLHttpRequest, is that a normal behavior? and Do I need to append the header manually?
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);
};
}
回答1:
Just add this to your app
myAppModule.config(['$httpProvider', function($httpProvider) {
$httpProvider.defaults.headers.common['X-Requested-With'] = 'XMLHttpRequest';
}]);
回答2:
It used to but was changed. (see here)
"X-Requested-With header is rarely used in practice and by using it all the time we are triggering preflight checks for crossdomain requests."
From Thomas Pons' answer here.
回答3:
I had the same issue and I solved it using:
myApp.config(['$httpProvider', function($httpProvider) {
$httpProvider.defaults.headers.common['X-Requested-With'] = 'XMLHttpRequest';
}]);
Also you can set the header to accept application/json
:
$http({
method: 'GET',
url: '/someUrl',
headers: { Accept: 'application/json' }
})
来源:https://stackoverflow.com/questions/18168836/angularjs-resource-not-sending-x-requested-with