How to prevent angular.js $http object from sending X-Requested-With header?
angular.module('myModule', []) .config(['$httpProvider', function($httpProvider) { delete $httpProvider.defaults.headers.common["X-Requested-With"] }])
I found that, besides Justen answer, I can also do it on a per request basis like this:
delete $http.defaults.headers.common['X-Requested-With']
Since Angular JS version 1.1.1 removing the header is no longer necessary.
See the change log:
https://github.com/angular/angular.js/blob/master/CHANGELOG.md#111-pathological-kerning-2012-11-26
For people like me who were using the header to identify ajax requests and respond to them differently.
e.g. making a request after the session expires.
You can re-enable the header like so:
angular.module('yourModule', []).config(['$httpProvider', function($httpProvider) { $httpProvider.defaults.headers.common["X-Requested-With"] = 'XMLHttpRequest';}]);