axios拦截器和默认header有什么区别?
What is the difference between axios interceptor and default header?
很好奇axios拦截器和默认拦截器的区别header。
我想在header中添加授权。
我知道我可以使用 axios 拦截器和默认 header 管理授权 header。
()
我不确定何时分别使用拦截器和默认 header。
仅仅是axios提供了两个方法吗?
默认 headers 是静态分配的。您放入其中的值必须在您的代码执行时已知。
axiosOrInstance.defaults.headers.common["x-value"] = "some value you must know";
拦截器是针对每个请求/响应执行的函数。这意味着他们可以访问之前可能不可用的值,甚至可以访问特定于当前请求的值。
axiosOrInstance.interceptors.request.use(config => ({
...config,
headers: {
...config.headers,
"x-value": "whatever"
}
}), null, {
synchronous: true,
runWhen: config => config.url === "only/run/for/this/url"
})
它们也可以是异步的,并在解析之前进行其他异步调用
axiosOrInstance.interceptors.request.use(async config => {
const someValue = await getSomeAsyncValue()
return {
...config,
headers: {
...config.headers,
"x-value": someValue
}
};
});
很好奇axios拦截器和默认拦截器的区别header。
我想在header中添加授权。
我知道我可以使用 axios 拦截器和默认 header 管理授权 header。
(
我不确定何时分别使用拦截器和默认 header。
仅仅是axios提供了两个方法吗?
默认 headers 是静态分配的。您放入其中的值必须在您的代码执行时已知。
axiosOrInstance.defaults.headers.common["x-value"] = "some value you must know";
拦截器是针对每个请求/响应执行的函数。这意味着他们可以访问之前可能不可用的值,甚至可以访问特定于当前请求的值。
axiosOrInstance.interceptors.request.use(config => ({
...config,
headers: {
...config.headers,
"x-value": "whatever"
}
}), null, {
synchronous: true,
runWhen: config => config.url === "only/run/for/this/url"
})
它们也可以是异步的,并在解析之前进行其他异步调用
axiosOrInstance.interceptors.request.use(async config => {
const someValue = await getSomeAsyncValue()
return {
...config,
headers: {
...config.headers,
"x-value": someValue
}
};
});