我开始开发SSR React-Redux应用程序,我遇到了axios标题的问题。
为每个Express请求设置不同标头的正确方法是什么?
Express.get('*', async (req, res) => {
axios.defaults.headers.common = req.headers['my-customer-id'];
// first axios get request
// second axios get request
// thirth axios get request
//... initialization React App
});
使用此方法,axios默认标头将从上一次Express请求中被覆盖。
我尝试使用axios.create()
创建不同的axios实例,但我不知道保存实例的位置和方式,以便在应用程序模块中使用。
答案 0 :(得分:0)
您可以使用create创建新的自定义axios实例。
const customAxios = axios.create({
headers: {...req.headers['my-customer-id']}
});
现在使用customAxios发出请求
customAxios.get(...)
答案 1 :(得分:0)
全局头和仅实例头之间有区别:
// affects the global instance
axios.defaults.headers.common['Auth-Token'] = 'foo bar';
// affects to a single instance
axiosInstance.defaults.headers['Auth-Token'] = 'foo bar';
这也适用于expressjs应用程序中的我,具有不同的服务(例如axios实例)