mirror of
https://github.com/tenrok/axios.git
synced 2026-06-11 18:02:32 +03:00
@@ -4,7 +4,6 @@ var defaults = require('./../defaults');
|
||||
var utils = require('./../utils');
|
||||
var InterceptorManager = require('./InterceptorManager');
|
||||
var dispatchRequest = require('./dispatchRequest');
|
||||
var transformData = require('./transformData');
|
||||
var isAbsoluteURL = require('./../helpers/isAbsoluteURL');
|
||||
var combineURLs = require('./../helpers/combineURLs');
|
||||
|
||||
@@ -42,27 +41,6 @@ Axios.prototype.request = function request(config) {
|
||||
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
|
||||
var chain = [dispatchRequest, undefined];
|
||||
var promise = Promise.resolve(config);
|
||||
|
||||
@@ -1,5 +1,8 @@
|
||||
'use strict';
|
||||
|
||||
var utils = require('./../utils');
|
||||
var transformData = require('./transformData');
|
||||
|
||||
/**
|
||||
* Dispatch a request to the server using whichever adapter
|
||||
* is supported by the current environment.
|
||||
@@ -8,6 +11,30 @@
|
||||
* @returns {Promise} The Promise to be fulfilled
|
||||
*/
|
||||
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) {
|
||||
try {
|
||||
var adapter;
|
||||
|
||||
@@ -39,11 +39,6 @@ describe('interceptors', function () {
|
||||
axios('/foo');
|
||||
|
||||
getAjaxRequest().then(function (request) {
|
||||
request.respondWith({
|
||||
status: 200,
|
||||
responseText: 'OK'
|
||||
});
|
||||
|
||||
expect(request.method).toBe('POST');
|
||||
expect(request.url).toBe('/bar');
|
||||
done();
|
||||
@@ -64,11 +59,6 @@ describe('interceptors', function () {
|
||||
axios('/foo');
|
||||
|
||||
getAjaxRequest().then(function (request) {
|
||||
request.respondWith({
|
||||
status: 200,
|
||||
responseText: 'OK'
|
||||
});
|
||||
|
||||
expect(request.requestHeaders.async).toBe('promise');
|
||||
done();
|
||||
});
|
||||
@@ -91,13 +81,6 @@ describe('interceptors', function () {
|
||||
axios('/foo');
|
||||
|
||||
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.test2).toBe('2');
|
||||
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