如何识别CORS飞行前请求?
CORS飞行前请求显然使用了OPTIONS方法,并且有一个Origin头。但是,浏览器可以决定为任何HTTP请求添加源标头。此外,选项可用于CORS以外的其他功能。(如何)我可以准确地识别(没有误报或否定)请求是否为CORS飞行前请求?检查标头。在飞行前请求之外的其他请求中发送它没有多大意义。检查飞行前请求中是否存在这些基本信息:如何识别CORS飞行前请求?,cors,preflight,Cors,Preflight,CORS飞行前请求显然使用了OPTIONS方法,并且有一个Origin头。但是,浏览器可以决定为任何HTTP请求添加源标头。此外,选项可用于CORS以外的其他功能。(如何)我可以准确地识别(没有误报或否定)请求是否为CORS飞行前请求?检查标头。在飞行前请求之外的其他请求中发送它没有多大意义。检查飞行前请求中是否存在这些基本信息: 请求的HTTP方法是OPTIONS 它有一个原点标题 它有一个accesscontrolrequestmethod头,指示它试图使用什么实际方法来使用您的服务/资源
OPTIONS
原点
标题accesscontrolrequestmethod
头,指示它试图使用什么实际方法来使用您的服务/资源拒绝设置不安全的标题“Origin”
(在Chrome上作为XHR请求进行测试)
而其他应用程序,如Postman,则会将自己的
Origin
设置为,比如Origin:chrome://extension...
你为什么在意?飞行前请求设计为与常规选项请求兼容。只要以相同的方式响应所有选项请求。@Quentin如果我这样做,那么我可能会以403回答一个完全有效的非CORS飞行前选项请求,因为客户端(不必要地)添加了一个原点,然后根据CORS请求的有效原点列表进行检查,结果是403。