await axios .post( "/tax/wechat/login", postData // { // headers: { // ssessionid: sessionStorage.getItem("sessionId"), // }, // } ) .then((response) => { console.log(response); const sessionId = response.headers["ssessionid"]; // sessionStorage.setItem("sessionId", response.headers["ssessionid"]); localStorage.setItem("sessionId", response.headers["ssessionid"]); console.log(sessionId); if (response.data.success) { this.$router.push("/profile"); } else { this.$router.push("/authentication"); } });和service.interceptors.request.use( (config) => { // if (config.url === "/tax/wechat/login") { // // 如果是登录接口,不需要添加sessionid // config.data = qs.stringify(config.data); // return config; // } // console.log(config, "2224444444444"); // const sessionId = sessionStorage.getItem("sessionId"); const sessionId = localStorage.getItem("sessionId"); if (sessionId) { config.headers.ssessionid = sessionId; } // config.data = qs.stringify(config.data); return config; }, (error) => { return Promise.reject(error); }改成cookie存储sessionid
时间: 2024-04-12 22:27:58 浏览: 202
要将 `sessionId` 存储在 Cookie 中,你需要进行以下修改。
在登录请求的代码中,使用 `document.cookie` 来设置 Cookie:
```javascript
await axios
.post(
"/tax/wechat/login",
postData
)
.then((response) => {
console.log(response);
const sessionId = response.headers["ssessionid"];
document.cookie = `sessionId=${sessionId}; path=/;`;
console.log(sessionId);
if (response.data.success) {
this.$router.push("/profile");
} else {
this.$router.push("/authentication");
}
});
```
这会将 `sessionId` 存储在名为 `sessionId` 的 Cookie 中。
接下来,在拦截器中,将 `sessionId` 从 Cookie 中读取出来,并设置到请求的 `ssessionid` 头部:
```javascript
service.interceptors.request.use(
(config) => {
const sessionId = document.cookie
.split("; ")
.find((row) => row.startsWith("sessionId="))
?.split("=")[1];
if (sessionId) {
config.headers.ssessionid = sessionId;
}
return config;
},
(error) => {
return Promise.reject(error);
}
);
```
这样,每次请求都会携带名为 `ssessionid` 的头部,其值为从 Cookie 中读取的 `sessionId`。
请注意,这只是一个简化的示例,实际上你可能还需要处理一些 Cookie 的相关设置,例如过期时间、安全性等。详细的 Cookie 操作可以参考 JavaScript 的 `document.cookie` API。
希望这可以帮助到你!如果还有其他问题,请随时提问。
阅读全文