express 如何解决跨域设置cookie

本地使用
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

阅读 5.9k
2 个回答

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

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题