fetch(URL)
我的浏览器(Chrome)似乎会自动将If-None-Match
和
If-Modified-Since
标头添加到请求中。尽管这些标题应根据fetchSpec
(我认为)触发前推式请求,但没有发送前飞行请求。当浏览器自动添加这样的标头而不是我将其添加到
fetch
函数时,这是期望的吗?我注意到,当我手动添加
If-None-Match
和If-Modified-Since
标头时,浏览器会发送前飞行请求:
fetch
Https://developer.mozilla.org/en-us/docs/web/http/http/cors#simple_requests表示,要归类为“简单”请求 - 因此避免触发前飞请求,请求,请求必须符合几个条件,包括这一点:
从用户代理自动设置的标头的apart(用于 示例,连接,用户代理或在该中定义的其他标题 作为禁止标题名称
Accept Accept语言
语言 type type(请注意以下其他要求)range(仅具有简单的范围标头值;例如,字节= 256-或字节= 127-255)
注意这个短语从用户代理自动设置的标题中
- 您已经注意到,浏览器自动设置的标头不算为触发飞行前请求,这是预期的行为。
如果浏览器设置的标题触发了飞行前请求,那么对于开发人员来说,这将是不公平的 - 如果浏览器更新突然导致额外的标头发送到Fetch请求中,这可能会破坏现有的代码实现,然后引起了fetch请求飞行前请求服务器没有期望。我不确定,但是 - 加上这样的事实,即这样的标题不可用户模拟,因此所代表的问题要少得多 - 这将使我成为这种行为的充分理由。