// method 1: setting axios.defaults.params at the class level
axios.defaults.params = {}
axios.defaults.params['api-key'] = secret
和
// method 2: setting the `params` attribute at an instance level
const axClient = axios.create({
baseURL: process.env.VUE_APP_BASE_URL,
params: {
api-key: process.env.VUE_APP_API_KEY
}
});
然而,我设法让它很好地工作使用拦截器如下:
// create an instance with default properties
const axClient = axios.create({
baseURL: process.env.VUE_APP_BASE_URL,
});
axClient.interceptors.request.use((config) => {
// use config.params if it has been set
config.params = config.params || {};
// add any client instance specific params to config
config.params['api-key'] = process.env.VUE_APP_API_KEY;
return config;
});
3条答案
按热度按时间wxclj1h51#
我使用了两种最常用的建议方法,努力使其与axios示例一起工作:
和
然而,我设法让它很好地工作使用拦截器如下:
这种方法的好处是,如果需要,示例级参数可以是动态的/按请求计算的。
作为一个(稍微有点做作的)示例,如果您需要向每个请求添加一个JWT(包括从您选择的存储方法中获取它的任何逻辑),甚至对围绕该请求的逻辑做出React。因此,在这个简单的示例中,如果用户在存储中没有JWT,请将他们重定向到登录页面,而不是发出请求。
um6iljoc2#
这是:
pxq42qpu3#
如果你需要在每个axios请求之前调用一个函数,你应该使用一个拦截器。