In case this is useful to anyone. For AngularJS 1.5x, I wanted to install CSRF for all requests, and I found that when I did this:
$httpProvider.defaults.headers.get = { 'CSRF-Token': afToken }; $httpProvider.defaults.headers.put = { 'CSRF-Token': afToken }; $httpProvider.defaults.headers.post = { 'CSRF-Token': afToken };
Angular removed the content type, so I had to add this:
$httpProvider.defaults.headers.common = { "Content-Type": "application/json"};
Otherwise, I get media type error 415.
So, I am doing this to configure the application for all requests:
angular.module("myapp.maintenance", []) .controller('maintenanceCtrl', MaintenanceCtrl) .directive('convertToNumber', ConvertToNumber) .config(configure); MaintenanceCtrl.$inject = ["$scope", "$http", "$sce", "$window", "$document", "$timeout", "$filter", 'alertService']; configure.$inject = ["$httpProvider"]; // configure the header tokens for CSRF for http operations in this module function configure($httpProvider) { const afToken = angular.element('input[id="__AntiForgeryToken"]').attr('value'); $httpProvider.defaults.headers.get = { 'CSRF-Token': afToken }; // only added for GET $httpProvider.defaults.headers.put = { 'CSRF-Token': afToken }; // added for PUT $httpProvider.defaults.headers.post = { 'CSRF-Token': afToken }; // added for POST // for some reason if we do the above we have to set the default content type for all // looks like angular clears it when we add our own headers $httpProvider.defaults.headers.common = { "Content-Type": "application/json" }; }
Norbert Norbertson Nov 29 '17 at 15:29 2017-11-29 15:29
source share