【发布时间】:2018-01-22 08:08:29
【问题描述】:
我几天来一直在尝试在我的应用程序中发送有效的重定向请求。 应该发生什么: 如果我尝试执行需要我登录的操作,我的快速应用程序应重定向到登录 URL。
router.use(function(req,res,next){
if(req.session.user == null){
res.redirect('http://localhost:4200/#/login');
}
else
next();
});
我的 CORS 实现:
var corsOptions = {
origin: process.env.ctxCliente,
credentials: true
}
app.use(cors(corsOptions));
错误:
XMLHttpRequest 无法加载 http://localhost:4200/#/login。回应 预检请求未通过访问控制检查: 响应中的“Access-Control-Allow-Origin”标头不能是 当请求的凭据模式为“包含”时,通配符“*”。起源 'null' 因此不允许访问。凭证模式 XMLHttpRequest 发起的请求由 withCredentials 属性。
在我的 Angular 应用程序上,我发送所有请求的 {withCredentials: true},因为我需要使用 cookie 来验证用户会话 ID
【问题讨论】:
-
如果所有这些都发生在您的应用程序中,那么为什么这是一个跨域请求?
-
@CBroe 我的 express 应用在 3000 端口,我的 Angular 应用在 4200 端口
-
嗯,错误消息告诉你什么是错误的——在这种情况下,你需要发送一个更具体的
Access-Control-Allow-Origin响应预检请求,而不仅仅是*。 -
在我的 corsOptions 中指定了原点。 process.env.ctxCliente 是 'localhost:4200'
-
尝试在
corsOptions中使用origin: true
标签: node.js http express redirect cors