Javascript 使用ExpressJS服务飞行前请求

Javascript 使用ExpressJS服务飞行前请求,javascript,node.js,express,preflight,Javascript,Node.js,Express,Preflight,我使用下面的代码在express中创建了一个简单的路由 const express = require("express"); const app = express(); app.get('/route1', (req, res) => { res.send({ data: "Route 1" }); }); app.listen(3000); 当我运行curl-X得到http://localhost:3000/route1,我得到{data:Route 1}作为响应 但是,我

我使用下面的代码在express中创建了一个简单的路由

const express = require("express");
const app = express();

app.get('/route1', (req, res) => {
  res.send({ data: "Route 1" });
});

app.listen(3000);
当我运行curl-X得到http://localhost:3000/route1,我得到{data:Route 1}作为响应

但是,我尝试运行curl-X选项http://localhost:3000/route1 模拟CORS飞行前请求。我收到了GET,HEAD作为回复

我找不到任何支持这种行为的文件。为什么上述路线会响应选项请求

注意:我没有使用过像CORS这样的其他软件包

编辑

根据Quentin的回答,我尝试发出另一个选项请求,其中包含相关的标题和curl中的display headers标志

curl-i-X选项http://localhost:3000/route1 \ -H'访问控制请求方法:POST'\ -H'访问控制请求头:内容类型,x-requested-with' 期权是一种具有标准行为的期权

CORS规范在常规选项请求的顶部添加了额外的语义

curl-X选项http://localhost:3000/route1 发出一个OPTIONS请求,但它没有模拟一个prefight请求,因为它缺少CORS规范所要求的一组请求头。您对该请求的响应也不包括任何CORS响应头

重新编辑:

我尝试发出另一个带有相关标题的选项请求

您遗漏了原始标题,但正如您所见,由于您没有在Express app中设置CORS支持,因此响应仍然不包含任何CORS响应标题

HTTP/1.1 200 OK
X-Powered-By: Express
Allow: GET,HEAD
Content-Type: text/html; charset=utf-8
Content-Length: 8
ETag: W/"8-ZRAf8oNBS3Bjb/SU2GYZCmbtmXg"
Date: Wed, 03 Jul 2019 11:14:07 GMT
Connection: keep-alive

GET,HEAD