如何将自定义参数发送到 axios 拦截器?我正在使用这样的拦截器:
window.axios.interceptors.request.use(function (config) {
if (PASSED_PARAM == true) {
doSomethingAwesome();
}
return config;
}, function (error) {
return Promise.reject(error);
});
我还有一个需要接收相同参数的响应拦截器。
答案 0 :(得分:6)
合并参数
axios.interceptors.request.use((config) => {
config.params = {...config.params, my_variable: 'value'}
return config
})
答案 1 :(得分:4)
在发送数据时,使用Axios拦截器向查询添加参数实际上相当简单。
axios.interceptors.request.use((config) => {
config.params = {my_variable: 'value'}
return config
})
答案 2 :(得分:1)
我最终使用了headers
对象。不确定是推荐,还是反模式。但无论如何它都有效。我不完全确定标头添加到服务器请求头的字节数,但我认为它是可以忽略的。
答案 3 :(得分:1)
@Laurent建议的方法将导致axios清除所有其他参数,并用my_variable
代替它,这可能并不是您想要的。
添加默认参数而不是替换的正确方法是这样的:
axios.defaults.params = {};
axios.interceptors.request.use(function (config) {
config.params['blah-defaut-param'] = 'blah-blah-default-value';
return config;
}, function (error) {
return Promise.reject(error);
});
这适用于axios 0.18.1
。由于存在回归错误,它无法与axios 0.19
一起使用...,我相信它将很快得到修复。
答案 4 :(得分:0)
axios 允许传递一些额外的请求参数:
$ bitbake core-image-minimal
Traceback (most recent call last):
File "/home/thisUser/Downloads/poky/bitbake/lib/bb/pysh/pyshyacc.py", line 654, in <module>
import pyshtables
ModuleNotFoundError: No module named 'pyshtables'
和拦截器:
axios.post('/api', `some body`,
{headers: {'Content-Type': ' text/html;charset=UTF-8'},
param: true});
我已经在版本:0.21.1 上测试过