<p dir="auto"><strong>Section/Content To Improve</strong><br>
<a href="https://github.com/axios/axios#axioscreateconfig">https://github.com/axios/axios#axioscreateconfig</a></p>
<p dir="auto"><strong>Suggested Improvement</strong><br>
<em>Shouldn't the doc be clearer about which parameters are intended to be used with axios.create?</em></p>
<p dir="auto">Until version 0.19 I used to pass the request url to axios.create without using baseURL:</p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="const instance = axios.create({
  data,
  headers,
  method,
  url: derivedUrl,
  ...omit(options, 'resource', 'headers', 'customErrorInterceptor'),
});

instance.interceptors.response.use(
  response =&gt; response,
  (error) =&gt; {
    if (options.customErrorInterceptor) {
      if (typeof options.customErrorInterceptor === 'function') {
        options.customErrorInterceptor(error);
      }
    } else globalXHRErrorHandling(error);
    return Promise.reject(error);
  },
);

return instance.request();"><pre class="notranslate"><code class="notranslate">const instance = axios.create({
  data,
  headers,
  method,
  url: derivedUrl,
  ...omit(options, 'resource', 'headers', 'customErrorInterceptor'),
});

instance.interceptors.response.use(
  response =&gt; response,
  (error) =&gt; {
    if (options.customErrorInterceptor) {
      if (typeof options.customErrorInterceptor === 'function') {
        options.customErrorInterceptor(error);
      }
    } else globalXHRErrorHandling(error);
    return Promise.reject(error);
  },
);

return instance.request();
</code></pre></div>
<p dir="auto">The reason of this strange choice is I want a global interceptor that sometimes is overridden by a specific one.</p>
<p dir="auto">With 0.19 release the url param is totally ignored by axios.create. I have to pass it to instance.request.</p>
<p dir="auto">Thanks!</p>
<p dir="auto"><strong>Describe the bug</strong></p>
<p dir="auto">Specific request params do not get merged with the instance default params.</p>
<p dir="auto"><strong>To Reproduce</strong></p>
<div class="highlight highlight-source-js notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content="const instance = axios.create({
    baseURL: &quot;http://www.example.com&quot;,
    params: {
      q: &quot;question&quot;,
    }
  });"><pre class="notranslate"><span class="pl-k">const</span> <span class="pl-s1">instance</span> <span class="pl-c1">=</span> <span class="pl-s1">axios</span><span class="pl-kos">.</span><span class="pl-en">create</span><span class="pl-kos">(</span><span class="pl-kos">{</span>
    <span class="pl-c1">baseURL</span>: <span class="pl-s">"http://www.example.com"</span><span class="pl-kos">,</span>
    <span class="pl-c1">params</span>: <span class="pl-kos">{</span>
      <span class="pl-c1">q</span>: <span class="pl-s">"question"</span><span class="pl-kos">,</span>
    <span class="pl-kos">}</span>
  <span class="pl-kos">}</span><span class="pl-kos">)</span><span class="pl-kos">;</span></pre></div>
<div class="highlight highlight-source-js notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content="instance.get(&quot;/page&quot;, 
  { 
    params: { 
      page: 2 
    }
  }
)"><pre class="notranslate"><span class="pl-s1">instance</span><span class="pl-kos">.</span><span class="pl-en">get</span><span class="pl-kos">(</span><span class="pl-s">"/page"</span><span class="pl-kos">,</span> 
  <span class="pl-kos">{</span> 
    <span class="pl-c1">params</span>: <span class="pl-kos">{</span> 
      <span class="pl-c1">page</span>: <span class="pl-c1">2</span> 
    <span class="pl-kos">}</span>
  <span class="pl-kos">}</span>
<span class="pl-kos">)</span></pre></div>
<p dir="auto">What happens is that the request param object overrides the instance default param object. The instance no longer has a query param of <code class="notranslate">q</code>.</p>
<p dir="auto"><strong>Expected behavior</strong></p>
<p dir="auto">According to the docs, all configuration options are <em>merged</em>. <a href="https://github.com/axios/axios#instance-methods">https://github.com/axios/axios#instance-methods</a></p>
<p dir="auto">I expected request to contain both <code class="notranslate">q</code> and <code class="notranslate">page</code> params. This is also how it was working in version 0.18.0, which is how I noticed.</p>
<p dir="auto"><strong>Environment:</strong></p>
<ul dir="auto">
<li>Axios Version: 0.19.0</li>
<li>OS: 10.14.5 (18F132)</li>
<li>Browser: Node Express, and Chrome</li>
<li>Browser: Node 10.15.0, Chrome Version 74.0.3729.169 (Official Build) (64-bit)</li>
</ul>