reactjs - React - 无法使用 axios 设置标题
问题描述
我目前正在制作快递-> react api。我无法使用 jwt 令牌设置标题,我想我已经尝试了我能找到的任何方法。它可能与CORS设置有关吗?
还原动作
return (dispatch) => {
return instance.post("/login", userData).then((res) => {
const token = res.data.accessToken;
localStorage.setItem("token", token);
instance.interceptors.request.use(
(config) => {
const token = localStorage.getItem("token");
const auth = token ? `Bearer ${token}` : "";
config.headers.common["Authorization"] = auth;
return config;
},
(error) => Promise.reject(error)
);
// setAuthorizationToken(token);
});
};
};
令牌正确地落在本地存储中。
全局 axios 设置
var instance = axios.create({
baseURL: "http://localhost:4000",
withCredentials: true,
});
服务器端的 Cors 设置。
app.use(
cors({
credentials: true,
allowedHeaders: "Content-Type, Authorization",
exposedHeaders: "Authorization",
origin:
process.env.NODE_ENV === "development"
? "http://localhost:3000"
: (process.env.FRONTEND_HOST as string),
})
);
有任何想法吗?
解决方案
如果是 CORS 问题,您可以在浏览器控制台中查看。尝试这个。在您的全局 axios 设置中
const instance = axios.create({
baseURL: "http://localhost:4000",
headers: {
Authorization: `Bearer ` + localStorage.getItem("token"),
},
responseType: "json",
});
instance.interceptors.request.use(
(config) => {
const token = localStorage.getItem("token");
if (token) {
config.headers.Authorization = `Bearer ${token}`;
}
return config;
},
(error) => {
return Promise.reject(error);
}
);
export default instance;
还原动作
return (dispatch) => {
return instance.post("/login", userData).then((res) => {
const token = res.data.accessToken;
localStorage.setItem("token", token);
// dispatch action here
});
};
};
推荐阅读
- outlook-web-addins - Outlook web-addin 使用已注册的方案打开外部应用程序
- firebase - 为什么调度引发错误时我没有收到警报?
- spring-integration - 动态 url http-outbound-gateway 的动态超时
- excel-formula - 如何为以下创建 MS Excel 公式
- ios - 是否可以获取有关应用程序上次更新时间的数据
- visual-studio - 在 Visual Studio Intellisense 中优先考虑局部变量
- webpack - Webpack 在构建 CSS 时生成了意外的 JS 文件
- ios - 在 CGContext 上绘制 UIImage 不显示
- python - 按列总和对熊猫数据框进行排序
- python - 提高 Voronoi 体积估计的性能