为什么我的NodeJS应用每次都会触发两个requests
?我不确定为什么这个OPTIONS每次都被解雇,当我实际上只是调用HTTP方法=> [GET, POST, PUT, DELETE]
OPTIONS /api/v1/admin/user/55e1d606803478cc1edacfa0 200 0.149 ms - -
DELETE /api/v1/admin/user/55e1d606803478cc1edacfa0 200 7.598 ms - 58
以下是我调用OPTIONS的代码。
app.all('/*', function(req, res, next){
res.header("Access-Control-Allow-Origin", "*");
res.header("Access-Control-Allow-Methods", "GET, PUT, POST, DELETE, OPTIONS");
res.header("Access-Control-Allow-Headers", "Content-type,Accept,X-Access-Token,X-Key");
if(req.method === 'OPTIONS'){
res.status(200).end();
} else {
next();
}
});
由于这两个users
同时被删除。
答案 0 :(得分:4)
为什么我的NodeJS应用每次都会发出两个请求?
它不是;浏览器是。
我不确定为什么这个OPTIONS每次都被解雇,当时我实际上只是在调用HTTP Methods =>
[GET, POST, PUT, DELETE]
最有可能的原因是您在网络浏览器中使用ajax进行跨域调用。 OPTIONS
调用是浏览器在实际调用之前进行的预检调用,以确保目标服务器接受来自给定源的跨源调用,如果是,则查找是什么服务器从该来源接受的标题,方法,凭证等。
并非所有跨省调用都需要预检,但许多(可能是大多数)都需要预检。规则是here。