mirror of
https://github.com/tenrok/axios.git
synced 2026-06-20 20:00:40 +03:00
Adding support for web workers, and react-native
closes #70, closes #98
This commit is contained in:
+14
-7
@@ -5,10 +5,8 @@
|
|||||||
var defaults = require('./../defaults');
|
var defaults = require('./../defaults');
|
||||||
var utils = require('./../utils');
|
var utils = require('./../utils');
|
||||||
var buildUrl = require('./../helpers/buildUrl');
|
var buildUrl = require('./../helpers/buildUrl');
|
||||||
var cookies = require('./../helpers/cookies');
|
|
||||||
var parseHeaders = require('./../helpers/parseHeaders');
|
var parseHeaders = require('./../helpers/parseHeaders');
|
||||||
var transformData = require('./../helpers/transformData');
|
var transformData = require('./../helpers/transformData');
|
||||||
var urlIsSameOrigin = require('./../helpers/urlIsSameOrigin');
|
|
||||||
|
|
||||||
module.exports = function xhrAdapter(resolve, reject, config) {
|
module.exports = function xhrAdapter(resolve, reject, config) {
|
||||||
// Transform request data
|
// Transform request data
|
||||||
@@ -65,11 +63,20 @@ module.exports = function xhrAdapter(resolve, reject, config) {
|
|||||||
};
|
};
|
||||||
|
|
||||||
// Add xsrf header
|
// Add xsrf header
|
||||||
var xsrfValue = urlIsSameOrigin(config.url) ?
|
// This is only done if running in a standard browser environment.
|
||||||
cookies.read(config.xsrfCookieName || defaults.xsrfCookieName) :
|
// Specifically not if we're in a web worker, or react-native.
|
||||||
undefined;
|
if (utils.isStandardBrowserEnv()) {
|
||||||
if (xsrfValue) {
|
var cookies = require('./../helpers/cookies');
|
||||||
requestHeaders[config.xsrfHeaderName || defaults.xsrfHeaderName] = xsrfValue;
|
var urlIsSameOrigin = require('./../helpers/urlIsSameOrigin');
|
||||||
|
|
||||||
|
// Add xsrf header
|
||||||
|
var xsrfValue = urlIsSameOrigin(config.url) ?
|
||||||
|
cookies.read(config.xsrfCookieName || defaults.xsrfCookieName) :
|
||||||
|
undefined;
|
||||||
|
|
||||||
|
if (xsrfValue) {
|
||||||
|
requestHeaders[config.xsrfHeaderName || defaults.xsrfHeaderName] = xsrfValue;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Add headers to the request
|
// Add headers to the request
|
||||||
|
|||||||
@@ -1,5 +1,11 @@
|
|||||||
'use strict';
|
'use strict';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* WARNING:
|
||||||
|
* This file makes references to objects that aren't safe in all environments.
|
||||||
|
* Please see lib/utils.isStandardBrowserEnv before including this file.
|
||||||
|
*/
|
||||||
|
|
||||||
var utils = require('./../utils');
|
var utils = require('./../utils');
|
||||||
|
|
||||||
module.exports = {
|
module.exports = {
|
||||||
|
|||||||
@@ -1,5 +1,11 @@
|
|||||||
'use strict';
|
'use strict';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* WARNING:
|
||||||
|
* This file makes references to objects that aren't safe in all environments.
|
||||||
|
* Please see lib/utils.isStandardBrowserEnv before including this file.
|
||||||
|
*/
|
||||||
|
|
||||||
var utils = require('./../utils');
|
var utils = require('./../utils');
|
||||||
var msie = /(msie|trident)/i.test(navigator.userAgent);
|
var msie = /(msie|trident)/i.test(navigator.userAgent);
|
||||||
var urlParsingNode = document.createElement('a');
|
var urlParsingNode = document.createElement('a');
|
||||||
|
|||||||
@@ -140,6 +140,27 @@ function isArguments(val) {
|
|||||||
return toString.call(val) === '[object Arguments]';
|
return toString.call(val) === '[object Arguments]';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Determine if we're running in a standard browser environment
|
||||||
|
*
|
||||||
|
* This allows axios to run in a web worker, and react-native.
|
||||||
|
* Both environments support XMLHttpRequest, but not fully standard globals.
|
||||||
|
*
|
||||||
|
* web workers:
|
||||||
|
* typeof window -> undefined
|
||||||
|
* typeof document -> undefined
|
||||||
|
*
|
||||||
|
* react-native:
|
||||||
|
* typeof document.createelement -> undefined
|
||||||
|
*/
|
||||||
|
function isStandardBrowserEnv() {
|
||||||
|
return (
|
||||||
|
typeof window !== 'undefined' &&
|
||||||
|
typeof document !== 'undefined' &&
|
||||||
|
typeof document.createElement === 'function'
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Iterate over an Array or an Object invoking a function for each item.
|
* Iterate over an Array or an Object invoking a function for each item.
|
||||||
*
|
*
|
||||||
@@ -221,6 +242,7 @@ module.exports = {
|
|||||||
isDate: isDate,
|
isDate: isDate,
|
||||||
isFile: isFile,
|
isFile: isFile,
|
||||||
isBlob: isBlob,
|
isBlob: isBlob,
|
||||||
|
isStandardBrowserEnv: isStandardBrowserEnv,
|
||||||
forEach: forEach,
|
forEach: forEach,
|
||||||
merge: merge,
|
merge: merge,
|
||||||
trim: trim
|
trim: trim
|
||||||
|
|||||||
Reference in New Issue
Block a user