需要飞行前使用passport、express angularjs的COR
我目前正在实现一个在服务器端使用express和passport的应用程序。每次用户尝试登录时,passport Authentication都会被激活,有两个参数-需要飞行前使用passport、express angularjs的COR,angularjs,express,cors,Angularjs,Express,Cors,我目前正在实现一个在服务器端使用express和passport的应用程序。每次用户尝试登录时,passport Authentication都会被激活,有两个参数-successRedirect和failureRedirect app.post('/login', passport.authenticate('local', { successRedirect: '/', failureRedirect: '/login', }) ); 我有以下标题 app.use(fu
successRedirect
和failureRedirect
app.post('/login',
passport.authenticate('local', {
successRedirect: '/',
failureRedirect: '/login',
})
);
我有以下标题
app.use(function(req, res, next) {
res.setHeader('Access-Control-Allow-Origin', '*');
res.setHeader('Access-Control-Allow-Methods', 'GET, POST, OPTIONS, PUT, PATCH, DELETE');
res.setHeader('Access-Control-Allow-Headers', 'X-Requested-With,content-type');
res.setHeader('Access-Control-Allow-Credentials', true);
next();
});
我的服务器有URL:
申请书的网址为:
每当我到达必须渲染successRedirect
的位置时,我都会遇到以下错误:
XMLHttpRequest cannot load http://localhost:9998/login. The request was redirected to 'http://localhost:9998/', which is disallowed for cross-origin requests that require preflight.
在大多数浏览器中执行飞行前请求意味着所述浏览器发出
选项
请求,因此如果站点不响应这些请求,请求将失败(请注意,请求必须打开,它不需要身份验证)。是否执行HTTP选项
方法?我相信这是CORS飞行前绝对需要的。您是否确认您的应用程序确实返回了所需的标题?如果您对应用程序进行测试OPTIONS
调用,是否对未经身份验证的用户有效?如果没有,那就是问题所在。它不适用于未经身份验证的用户。但我目前还没有实现OPTIONS方法。