2
0
mirror of https://github.com/tenrok/axios.git synced 2026-06-17 19:21:29 +03:00

Adding xsrf protection

This commit is contained in:
Matt Zabriskie
2014-08-29 01:17:40 -06:00
parent 3ae6670f77
commit 7aef479c7e
14 changed files with 534 additions and 99 deletions
+11 -1
View File
@@ -1,8 +1,10 @@
var Promise = require('es6-promise').Promise;
var buildUrl = require('./buildUrl');
var cookies = require('./cookies');
var defaults = require('./defaults');
var parseHeaders = require('./parseHeaders');
var transformData = require('./transformData');
var urlIsSameOrigin = require('./urlIsSameOrigin');
var utils = require('./utils');
var axios = module.exports = function axios(options) {
@@ -62,9 +64,17 @@ var axios = module.exports = function axios(options) {
options.headers || {}
);
// Add xsrf header
var xsrfValue = urlIsSameOrigin(options.url)
? cookies.read(options.xsrfCookieName || defaults.xsrfCookieName)
: undefined;
if (xsrfValue) {
headers[options.xsrfHeaderName || defaults.xsrfHeaderName] = xsrfValue;
}
utils.forEach(headers, function (val, key) {
// Remove Content-Type if data is undefined
if (typeof data === 'undefined' && key.toLowerCase() === 'content-type') {
if (!data && key.toLowerCase() === 'content-type') {
delete headers[key];
}
// Otherwise add header to the request