使用express ,利用cors中间件实现前后端分离 但是发现明明传过去登录接口设置session,但是检验接口输出session确实未定义,百度知道是跨域问题导致的。
问题解决:
后端的app.js添加
app.all('*', function(req, res, next) {
res.header("Access-Control-Allow-Origin", "http://localhost:9000");//前端域名
res.header("Access-Control-Allow-Credentials",'true');
res.header("Access-Control-Allow-Methods","PUT,POST,GET,DELETE,OPTIONS");
next();
});
前端ajax内添加
xhrFields:{withCredentials:true},
参考链接
(34条消息) node express中解决session跨域undefined_神奇大叔的博客-CSDN博客_express-session 跨域
但是jQuery的delete方法添加 xhrFields:{withCredentials:true}确报跨域问题,去掉或者改成get 请求则没问题。看到某分析说jQuery的标准的请求是get和post 。
解决方法2:将请求方法改成post,再data中添加 _method: 'DELETE'