Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
需要飞行前使用passport、express angularjs的COR_Angularjs_Express_Cors - Fatal编程技术网

需要飞行前使用passport、express angularjs的COR

需要飞行前使用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

我目前正在实现一个在服务器端使用express和passport的应用程序。每次用户尝试登录时,passport Authentication都会被激活,有两个参数-
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方法。