C/C++教程

Express 项目,res.cookie() 设置 Cookie 无法被保存在浏览器的 Application 中

本文主要是介绍Express 项目,res.cookie() 设置 Cookie 无法被保存在浏览器的 Application 中,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

res.cookie() 给客户端响应头封装的 Cookie 无法被保存在客户端浏览器的 Application 中,只能在 Set-Cookie 中看到有这个值:

image

经过多方的搜索和查询,前后端分离项目中,存在跨域问题,域名不一样导致 Cookie 无法被存储在浏览器的 Application 中,而只需要前后端多加一个配置项即可:

首先是前端发送请求是需要添加的一个配置,我用的是 axios:

request.post("/login", {
  username, password
}, {
  withCredentials: true
}).then(({ data: res }) => {
  if ( res.data.length !== 0 && res.status == 200 ) {
    onSuccess(res.data, res.status);
  } else {
    one rror ? one rror(res) : "";
  }
}).catch(err => {
  one rror ? one rror(err) : "";
});

注意看第四行代码,多添加了一个withCredentials: true

Express 必须需要使用中间件cors,然后再添加配置项:

import express from "express";
import cors from "cors";

const app = express();

app.use(cors({ credentials: true, origin: true }));

image

这篇关于Express 项目,res.cookie() 设置 Cookie 无法被保存在浏览器的 Application 中的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!