mirror of
https://github.com/tenrok/axios.git
synced 2026-06-23 20:40:40 +03:00
@@ -4,7 +4,6 @@ var defaults = require('./../defaults');
|
|||||||
var utils = require('./../utils');
|
var utils = require('./../utils');
|
||||||
var InterceptorManager = require('./InterceptorManager');
|
var InterceptorManager = require('./InterceptorManager');
|
||||||
var dispatchRequest = require('./dispatchRequest');
|
var dispatchRequest = require('./dispatchRequest');
|
||||||
var transformData = require('./transformData');
|
|
||||||
var isAbsoluteURL = require('./../helpers/isAbsoluteURL');
|
var isAbsoluteURL = require('./../helpers/isAbsoluteURL');
|
||||||
var combineURLs = require('./../helpers/combineURLs');
|
var combineURLs = require('./../helpers/combineURLs');
|
||||||
|
|
||||||
@@ -42,27 +41,6 @@ Axios.prototype.request = function request(config) {
|
|||||||
config.url = combineURLs(config.baseURL, config.url);
|
config.url = combineURLs(config.baseURL, config.url);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Transform request data
|
|
||||||
config.data = transformData(
|
|
||||||
config.data,
|
|
||||||
config.headers,
|
|
||||||
config.transformRequest
|
|
||||||
);
|
|
||||||
|
|
||||||
// Flatten headers
|
|
||||||
config.headers = utils.merge(
|
|
||||||
config.headers.common || {},
|
|
||||||
config.headers[config.method] || {},
|
|
||||||
config.headers || {}
|
|
||||||
);
|
|
||||||
|
|
||||||
utils.forEach(
|
|
||||||
['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],
|
|
||||||
function cleanHeaderConfig(method) {
|
|
||||||
delete config.headers[method];
|
|
||||||
}
|
|
||||||
);
|
|
||||||
|
|
||||||
// Hook up interceptors middleware
|
// Hook up interceptors middleware
|
||||||
var chain = [dispatchRequest, undefined];
|
var chain = [dispatchRequest, undefined];
|
||||||
var promise = Promise.resolve(config);
|
var promise = Promise.resolve(config);
|
||||||
|
|||||||
@@ -1,5 +1,8 @@
|
|||||||
'use strict';
|
'use strict';
|
||||||
|
|
||||||
|
var utils = require('./../utils');
|
||||||
|
var transformData = require('./transformData');
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Dispatch a request to the server using whichever adapter
|
* Dispatch a request to the server using whichever adapter
|
||||||
* is supported by the current environment.
|
* is supported by the current environment.
|
||||||
@@ -8,6 +11,30 @@
|
|||||||
* @returns {Promise} The Promise to be fulfilled
|
* @returns {Promise} The Promise to be fulfilled
|
||||||
*/
|
*/
|
||||||
module.exports = function dispatchRequest(config) {
|
module.exports = function dispatchRequest(config) {
|
||||||
|
// Ensure headers exist
|
||||||
|
config.headers = config.headers || {};
|
||||||
|
|
||||||
|
// Transform request data
|
||||||
|
config.data = transformData(
|
||||||
|
config.data,
|
||||||
|
config.headers,
|
||||||
|
config.transformRequest
|
||||||
|
);
|
||||||
|
|
||||||
|
// Flatten headers
|
||||||
|
config.headers = utils.merge(
|
||||||
|
config.headers.common || {},
|
||||||
|
config.headers[config.method] || {},
|
||||||
|
config.headers || {}
|
||||||
|
);
|
||||||
|
|
||||||
|
utils.forEach(
|
||||||
|
['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],
|
||||||
|
function cleanHeaderConfig(method) {
|
||||||
|
delete config.headers[method];
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
return new Promise(function executor(resolve, reject) {
|
return new Promise(function executor(resolve, reject) {
|
||||||
try {
|
try {
|
||||||
var adapter;
|
var adapter;
|
||||||
|
|||||||
@@ -39,11 +39,6 @@ describe('interceptors', function () {
|
|||||||
axios('/foo');
|
axios('/foo');
|
||||||
|
|
||||||
getAjaxRequest().then(function (request) {
|
getAjaxRequest().then(function (request) {
|
||||||
request.respondWith({
|
|
||||||
status: 200,
|
|
||||||
responseText: 'OK'
|
|
||||||
});
|
|
||||||
|
|
||||||
expect(request.method).toBe('POST');
|
expect(request.method).toBe('POST');
|
||||||
expect(request.url).toBe('/bar');
|
expect(request.url).toBe('/bar');
|
||||||
done();
|
done();
|
||||||
@@ -64,11 +59,6 @@ describe('interceptors', function () {
|
|||||||
axios('/foo');
|
axios('/foo');
|
||||||
|
|
||||||
getAjaxRequest().then(function (request) {
|
getAjaxRequest().then(function (request) {
|
||||||
request.respondWith({
|
|
||||||
status: 200,
|
|
||||||
responseText: 'OK'
|
|
||||||
});
|
|
||||||
|
|
||||||
expect(request.requestHeaders.async).toBe('promise');
|
expect(request.requestHeaders.async).toBe('promise');
|
||||||
done();
|
done();
|
||||||
});
|
});
|
||||||
@@ -91,13 +81,6 @@ describe('interceptors', function () {
|
|||||||
axios('/foo');
|
axios('/foo');
|
||||||
|
|
||||||
getAjaxRequest().then(function (request) {
|
getAjaxRequest().then(function (request) {
|
||||||
var request = jasmine.Ajax.requests.mostRecent();
|
|
||||||
|
|
||||||
request.respondWith({
|
|
||||||
status: 200,
|
|
||||||
responseText: 'OK'
|
|
||||||
});
|
|
||||||
|
|
||||||
expect(request.requestHeaders.test1).toBe('1');
|
expect(request.requestHeaders.test1).toBe('1');
|
||||||
expect(request.requestHeaders.test2).toBe('2');
|
expect(request.requestHeaders.test2).toBe('2');
|
||||||
expect(request.requestHeaders.test3).toBe('3');
|
expect(request.requestHeaders.test3).toBe('3');
|
||||||
@@ -253,4 +236,20 @@ describe('interceptors', function () {
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it('should execute interceptors before transformers', function (done) {
|
||||||
|
axios.interceptors.request.use(function (config) {
|
||||||
|
config.data.baz = 'qux';
|
||||||
|
return config;
|
||||||
|
});
|
||||||
|
|
||||||
|
axios.post('/foo', {
|
||||||
|
foo: 'bar'
|
||||||
|
});
|
||||||
|
|
||||||
|
getAjaxRequest().then(function (request) {
|
||||||
|
expect(request.params).toEqual('{"foo":"bar","baz":"qux"}');
|
||||||
|
done();
|
||||||
|
});
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
|||||||
Reference in New Issue
Block a user