需要预检的CORS,使用护照,表达angularjs

时间:2015-10-21 11:49:50

标签: angularjs express cors

我目前正在实施一个在服务器端使用快递和护照的应用程序。每次用户尝试登录时,都会激活护照身份验证,其中包含两个参数 - successRedirectfailureRedirect

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();
});

我的服务器有网址:http://localhost:9998 该应用程序在:http://localhost:9000 每当我到达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.

1 个答案:

答案 0 :(得分:0)

在大多数浏览器中实施飞行前请求意味着所述浏览器发出OPTIONS请求,因此如果该站点没有响应,请求将失败(请注意该请求必须打开,它不能要求身份验证。)