Axios选项,而不是POST请求。快速Rest API(CORS)
我正在尝试使用Axios(和VueJs)向我的RESTAPI(在本地主机上运行)发出跨源POST请求。它实际上不是执行POST请求,而是对我的RESTAPI执行OPTIONS请求。这绕过了检查令牌并返回403的中间件功能 这是登录功能Axios选项,而不是POST请求。快速Rest API(CORS),rest,express,vue.js,axios,Rest,Express,Vue.js,Axios,我正在尝试使用Axios(和VueJs)向我的RESTAPI(在本地主机上运行)发出跨源POST请求。它实际上不是执行POST请求,而是对我的RESTAPI执行OPTIONS请求。这绕过了检查令牌并返回403的中间件功能 这是登录功能 router.post('/login', (req, res) => { User.authUser(req.body, (err, user) => { var passwordIsValid = bcrypt.compareS
router.post('/login', (req, res) => {
User.authUser(req.body, (err, user) => {
var passwordIsValid = bcrypt.compareSync(req.body.password, user.password);
if (err) throw err;
if (!user) {
res.json({ success: false, message: 'User nicht gefunden' });
} else if (user) {
if (!passwordIsValid) {
res.json({ success: false, message: 'Falsches Passwort' });
} else {
const payload = {
admin: user.admin
};
var token = jwt.sign(payload, config.secret, {
expiresIn: 86400
});
res.json({success: true, message: 'Token!', token: token});
}
}
})
});
我如何才能让Axios发出正确的POST请求?我尝试了这个方法,因为我第一次认为选项请求只是飞行前的一个请求,但在我返回200(或204)后就没有请求了
CORS中间件:
app.use(function(req, res, next) { //set Response Headers
res.setHeader('Access-Control-Allow-Origin', '*');
res.setHeader('Access-Control-Allow-Methods', 'GET,PUT,POST,DELETE');
if ('OPTIONS' == req.method) {
res.send(204);
}
else {
next();
}
});
相关的: