我目前正在实施一个在服务器端使用快递和护照的应用程序。每次用户尝试登录时,都会激活护照身份验证,其中包含两个参数 - 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();
});
我的服务器有网址: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.
答案 0 :(得分:0)
在大多数浏览器中实施飞行前请求意味着所述浏览器发出OPTIONS
请求,因此如果该站点没有响应,请求将失败(请注意该请求必须打开,它不能要求身份验证。)