CORS预检请求显然使用OPTIONS方法并具有Origin标头。但是,浏览器可以决定任何 HTTP请求以添加Origin标头。此外,OPTIONS可用于除CORS之外的其他功能。 (如何)我能否确定完全(没有误报或否定)请求是否是CORS预检请求?
答案 0 :(得分:8)
检查预检请求中是否存在这些基本信息:
OPTIONS
Origin
标题Access-Control-Request-Method
标题,表示它尝试使用您的服务/资源的实际方法是什么<强>考虑强>
从理论上讲,你可以如此聪明并手动设置这些标题,并出于某种原因尝试制作一些假的Preflight请求。
但是,您的浏览器会抱怨以下示例消息:
Refused to set unsafe header "Origin"
(在Chrome上作为XHR请求测试)
而其他应用程序(如邮递员)会将自己的Origin
设置为Origin: chrome://extension...
答案 1 :(得分:2)
检查Access-Control-Request-Method标头。在预检请求以外的请求中发送它是没有多大意义的。