我意识到我并不完全理解 Express 如何处理“预检选项请求”,这是标准设置:
const cors = require('cors');
const app = express();
app.use(cors({
preflightContinue: true // here
}));
我有两个问题:
preflightContinue: true
和preflightContinue: false
到底有什么区别
默认的快速设置是什么? - 我的猜测是该标志默认为
false
最重要的是:通过
preflightContinue: true
,何时/如何 OPTIONS 请求得到响应?是不是神奇地回复了正常的请求?
此选项允许您在设置必要的标头后使用自己的中间件生成对预检请求的响应。请参阅源代码。
这种情况的一个用例是设置不同的 HTTP 状态代码,以满足具有非标准行为的浏览器,如下所示:
app.use(cors({preflightContinue: true}))
.options("*", function(req, res) {
res.status(204).end();
});