Reputation: 16066
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);
};
}
Upvotes: 47
Views: 25651
Reputation: 3692
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' }
})
Upvotes: 2
Reputation: 1116
Just add this to your app
myAppModule.config(['$httpProvider', function($httpProvider) {
$httpProvider.defaults.headers.common['X-Requested-With'] = 'XMLHttpRequest';
}]);
Upvotes: 109
Reputation: 1883
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.
Upvotes: 26