config.headers=AxiosHeaders.from(config.headers);// Transform request data
config.data=transformData.call(config,config.transformRequest);if(['post','put','patch'].indexOf(config.method)!==-1){config.headers.setContentType('application/x-www-form-urlencoded',false);}
exportdefaultfunctiondispatchRequest(config){throwIfCancellationRequested(config);config.headers=AxiosHeaders.from(config.headers);// Transform request data
config.data=transformData.call(config,config.transformRequest);if(['post','put','patch'].indexOf(config.method)!==-1){config.headers.setContentType('application/x-www-form-urlencoded',false);}constadapter=adapters.getAdapter(config.adapter||defaults.adapter);returnadapter(config).then(functiononAdapterResolution(response){throwIfCancellationRequested(config);// Transform response data
response.data=transformData.call(config,config.transformResponse,response);response.headers=AxiosHeaders.from(response.headers);returnresponse;},functiononAdapterRejection(reason){if(!isCancel(reason)){throwIfCancellationRequested(config);// Transform response data
if(reason&&reason.response){reason.response.data=transformData.call(config,config.transformResponse,reason.response);reason.response.headers=AxiosHeaders.from(reason.response.headers);}}returnPromise.reject(reason);});}
letrequest=newXMLHttpRequest();// HTTP basic authentication
if(config.auth){constusername=config.auth.username||'';constpassword=config.auth.password?unescape(encodeURIComponent(config.auth.password)):'';requestHeaders.set('Authorization','Basic '+btoa(username+':'+password));}constfullPath=buildFullPath(config.baseURL,config.url);request.open(config.method.toUpperCase(),buildURL(fullPath,config.params,config.paramsSerializer),true);// Set the request timeout in MS
request.timeout=config.timeout;functiononloadend(){// ....
}if('onloadend'inrequest){// Use onloadend if available
request.onloadend=onloadend;}else{// Listen for ready state to emulate onloadend
request.onreadystatechange=functionhandleLoad(){// ....
};}// Handle browser request cancellation (as opposed to a manual cancellation)
request.onabort=functionhandleAbort(){// ...
};// Handle low level network errors
request.onerror=functionhandleError(){// ...
};// Handle timeout
request.ontimeout=functionhandleTimeout(){// ....
};// ....
// Add withCredentials to request if needed
if(!utils.isUndefined(config.withCredentials)){request.withCredentials=!!config.withCredentials;}// Add responseType to request if needed
if(responseType&&responseType!=='json'){request.responseType=config.responseType;}// Handle progress if needed
if(typeofconfig.onDownloadProgress==='function'){request.addEventListener('progress',progressEventReducer(config.onDownloadProgress,true));}// Not all browsers support upload events
if(typeofconfig.onUploadProgress==='function'&&request.upload){request.upload.addEventListener('progress',progressEventReducer(config.onUploadProgress));}// ....
// Send the request
request.send(requestData||null);