Skip to content

User-Agent set in global and instance defaults are not respected #5157

@josnidhin

Description

@josnidhin

Describe the bug

Setting User-Agent in global and instance default config is not respected by Axios when sending a request.

To Reproduce

const axios = require("axios"),
    axiosInstance = axios.create(),

    // view the webhook result @ https://webhook.site/#!/a9845fd3-dfca-4dda-aa4c-0cd5e7a092b2
    // or get new webhook endpoint and replace the following.
    webhookUrl = 'https://webhook.site/a9845fd3-dfca-4dda-aa4c-0cd5e7a092b2';

// Global Config
axios.defaults.headers.common['User-Agent'] = 'global-bug-test/1.0.0';

// Instance Config
axiosInstance.defaults.headers.common['User-Agent'] = 'instance-bug-test/1.0.0';

// GET request to webhook url
let req = await axios.get(webhookUrl);
console.log(`global user agent: ${req.request.getHeader('User-Agent')}`); // expected to be "global-bug-test/1.0.0"

req = await axiosInstance.get(webhookUrl);
console.log(`instance user agent: ${req.request.getHeader('User-Agent')}`); // expected to be "instance-bug-test/1.0.0"

req = await axios({
    method: 'get',
    url: webhookUrl,
    headers: {
        'User-Agent': 'per-req/1.0.0'
    }
});
console.log(`per request user agent: ${req.request.getHeader('User-Agent')}`); // as expected 'per-req/1.0.0'

req = await axiosInstance({
    method: 'get',
    url: webhookUrl,
    headers: {
        'User-Agent': 'instance-per-req/1.0.0'
    }
});
console.log(`instance per request user agent: ${req.request.getHeader('User-Agent')}`); // as expected 'instance-per-req/1.0.0'

Code snippet

https://runkit.com/embed/0jmydlw9w46r

Expected behavior

  • Expected user agent set in global config to be used instead of axios/1.1.3.
  • Expected user agent set in instance config to be used instead of axios/1.1.3.

Axios Version

All versions from 1.0.0 to 1.1.3

Adapter Version

No response

Browser

No response

Browser Version

No response

Node.js Version

18

OS

No response

Additional Library Versions

No response

Additional context/Screenshots

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions