![]() |
1
26
预照明的主要目的是确保服务器不会突然发送基于浏览器的跨源请求,这些请求在CORS规范实施之前可能从未收到过。
在CORS规范之前,除了GET或POST之外,不可能发送任何基于浏览器的跨源请求。浏览器只是不允许您启动XHR实例,将方法设置为PUT(例如)并将其发送到不同来源的端点。您也不能通过XHR发送GET或POST跨源请求,但可以通过表单提交发送跨源GET或POST,或通过
CORS规范定义了“简单”方法(GET和POST)以及“简单”请求头。这些对应于您已经可以从浏览器前CORS规范发送的跨源请求的类型。非简单的跨源要求,例如,带有X标头的PUT或POST/GET要求(例如),无法从浏览器前的CORS规范中发送。因此,对于这些类型的要求,预照明的概念被写入规范中,以确保服务器在没有明确选择的情况下不会接收这些类型的非简单的基于跨源浏览器的请求。换句话说,如果您不想允许这些类型的请求,则根本不必更改服务器。预飞行将失败,浏览器将永远不会发送底层请求。 直接回答您的问题:HEAD请求通常不会导致预检。根据CORS规范,HEAD被认为是一种简单的请求方法。如您所知,HEAD请求只是没有响应负载的GET。这是HEAD和GET请求被相同对待的最可能原因,即使您无法从浏览器发送跨源HEAD请求预CORS。如果您的HEAD包含非简单的头,那么它将被预点燃,就像GET一样。 |
![]() |
mfcss · 如何避免从其他域加载的图像出现ERR_EMPTY_响应 3 年前 |
![]() |
Mohamed · 使用JQuery通过页面URL搜索页面中的值 7 年前 |
![]() |
Merji · 更改iframe输入内容的postMessage 7 年前 |
![]() |
Lopol2010 · 从服务器和客户端获取请求 7 年前 |