set-cookie无法写入本地

问题描述

接收到set-cookie后无法写入到本地,domain没有用

http请求如图

clipboard.png

clipboard.png

clipboard.png

服务端代码

var cookieParser = require( 'cookie-parser' );
app.use( cookieParser() );

var allowCrossDomain = function( req, res, next ) {
    res.header( 'Access-Control-Allow-Origin', '*' );
    res.header("Access-Control-Allow-Headers", "Content-Type,Content-Length, Authorization, Accept,X-Requested-With"); 
    res.header("Access-Control-Allow-Methods","PUT,POST,GET,DELETE,OPTIONS"); 
    res.header('Access-Control-Allow-Credentials', 'true'); 
    res.header("X-Powered-By",' 3.2.1');
    res.header("Content-Type", "application/json;charset=utf-8");
    next();
};

app.use( allowCrossDomain );

app.get( '/login', async( req, res ) => {
    // ...
    var cookie_data = { username: username, password: password }; 
    res.cookie( 'userinfo', JSON.stringify( cookie_data ), { domain: 'http://47.52.236.152', httpOnly: false } );
    res.send( ... ); 
} );

阅读 5.4k
3 个回答

你是前端项目(域名a)请求的后端接口(域名b),set-cookies是域名b的response所以cookies设置给了域名b,而a域名是不能访问到的。
实际上你可以不管理cookies,在你下次请求接口时候cookies会自动带上,不需要你在前端项目中手动管理set-cookies内容

安全原因, 因为请求的 url 和 要设置 cookie 的源不一样(端口不同).

新手上路,请多包涵

前端跨域权限设置后忘记保存了qwq

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