今天一个实习生问为何axios设置的baseURL不起作用,好像是被覆盖了,下面就大概说说为何会这样。
在 axios 中,当你为一个请求设置 baseURL
时,这个 baseURL
会作为所有后续请求的基础 URL。当你发起一个具体的请求时,如果该请求的 URL 是以 “/” 开头的相对路径,则 baseURL
会被添加到请求的 URL 前面,形成完整的请求 URL。
例如,如果你设置了 axios.defaults.baseURL = 'https://api.example.com/api/v1/'
,然后你执行以下请求:
axios.get('/users')
那么实际的 URL 会是 https://api.example.com/api/v1/users
。
但是,如果你请求的 URL 是一个完整的 URL(即包含了协议和域名),则 baseURL
不会被使用,请求将直接发送到指定的完整 URL。例如:
axios.get('https://other-api.com/users')
这种情况下,baseURL
不会影响请求的 URL,请求将会发送到 https://other-api.com/users
。
所以说,在 axios 中设置的 baseURL
会不会被覆盖,取决于你的 URL 是不是一个完整的 URL。
评论区