mirror of
https://github.com/tenrok/axios.git
synced 2026-06-17 19:21:29 +03:00
0e8b6bbb54
* fix(http): preserve user-supplied Host header when forwarding through a proxy (#10805) When sending a request through a proxy with the http adapter, axios was unconditionally rewriting `options.headers.host` to the request URL's hostname:port, overwriting any Host header the caller had set in `config.headers`. This made it impossible to direct a proxy to a virtual host that differs from the request URL — for example, hitting `127.0.0.1:4000` while asking the proxy to treat the request as `example.com`. Skip the default assignment when a Host header is already present (case-insensitive match, since users may pass `host`, `Host`, or `HOST`). * chore: apply some nitpicks --------- Co-authored-by: Jason Saayman <jasonsaayman@gmail.com>
axios // adapters
The modules under adapters/ are modules that handle dispatching a request and settling a returned Promise once a response is received.
Example
var settle = require('../core/settle');
module.exports = function myAdapter(config) {
// At this point:
// - config has been merged with defaults
// - request transformers have already run
// - request interceptors have already run
// Make the request using config provided
// Upon response settle the Promise
return new Promise(function (resolve, reject) {
var response = {
data: responseData,
status: request.status,
statusText: request.statusText,
headers: responseHeaders,
config: config,
request: request,
};
settle(resolve, reject, response);
// From here:
// - response transformers will run
// - response interceptors will run
});
};