问题描述
接收到set-cookie后无法写入到本地,domain没有用
http请求如图
服务端代码
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( ... );
} );
你是前端项目(域名a)请求的后端接口(域名b),set-cookies是域名b的response所以cookies设置给了域名b,而a域名是不能访问到的。
实际上你可以不管理cookies,在你下次请求接口时候cookies会自动带上,不需要你在前端项目中手动管理set-cookies内容