express 如何解决跨域设置cookie

发布于 2022-09-12 00:11:57 字数 1496 浏览 27 评论 0

本地使用
http-server .
开启一个前端服务 地址为 http://127.0.0.1:8080/
node ./index.js
开启一个后端服务 地址为 http://localhost:3000/

我想实现服务端对前端进行cookie的写入和获取操作,但是他们不生效,我甚至找了两个请求的库,网上的办法也没能试成功.

求大神指导

前端代码
jquery 代码

$.ajax({
    url:'http://localhost:3000/',
    xhrFields:{
         withCredentials:true
    },
})

axios 代码

axios.get('http://localhost:3000/',{
    withCredentials:true,
})
.then(function (response) {
    console.log(response);
})

服务端代码

var  express  =  require("express");
var  cors  =  require('cors')

var  app  =  express();
var  cookieParser  =  require('cookie-parser')
var  corsOptions  = {
    origin: 'http://127.0.0.1:8080',
    credentials: true,
    maxAge: '1728000'
    //这一项是为了跨域专门设置的
}

app.use(cors(corsOptions))

app.use(cookieParser())

app.get("/", function(req, res) {
    console.log(req.cookies,req.cookies.remebreme);
    res.cookie("rememberme", "2", {
        expires: new  Date(Date.now() +  900000),
    });
    res.send({ a: 1 }); 
});

跨域请求

image.png

直接请求

image.png

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

简美 2022-09-19 00:11:57

image.png
用你的代码测试了一下,没有发现问题

长途伴 2022-09-19 00:11:57

请问你解决这个问题了吗??这个问题是跨域导致cookie设置不成功
我也遇到了这个问题

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文