为什么这不是CORS要求?

时间:2019-01-11 18:36:39

标签: forms http cors

我正在将表单发布到另一个域,Chrome似乎未发送OPTIONS请求。因此,这似乎是一个简单请求。

根据Mozilla,对于简单请求,仅允许某些标头。浏览器似乎正在发送:

Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8
Accept-Encoding: gzip, deflate, br
Accept-Language: en-US,en;q=0.9,fr-CA;q=0.8,fr-FR;q=0.7,fr;q=0.6,ja;q=0.5,ko;q=0.4
Cache-Control: no-cache
Connection: keep-alive
Content-Length: 127
Content-Type: application/x-www-form-urlencoded
Cookie: _ga=...
Host: xxx.yyy.com
Origin: http://zzz.amazonaws.com
Pragma: no-cache
Referer: http://zzz.amazonaws.com/
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36

其中一些标头似乎不在可以Simple Request发送的标头之外。具体来说,Cache-ControlPragmaUpgrade-Insecure-Requests

似乎它们可能属于 由用户代理自动设置的标头

这些标头是否有明确的列表?

是否有办法知道所有浏览器如何支持它们?

1 个答案:

答案 0 :(得分:0)

在简单请求中可以设置哪些标头的限制是指JavaScript程序调用XMLHttpRequest或fetch API设置的标头。

它不适用于浏览器自动设置的标题。

(嗯,除了withCredentials这样的设置之外,JavaScript会在不显式设置的情况下请求广泛的标头类别)。