所以我有同一个网站,从不同的网络和计算机向 (1) Chrome 76 和 (2) Chrome 77 上的同一台服务器发出相同的请求。
一个请求有 (1)Sec-Fetch-Mode: no-cors, Sec-Fetch-Site: cross-site和另一个 (2) Sec-Fetch-Mode: cors, Sec-Fetch-Site: same-site。与一个no-cors具有400与CORS一个C#的Web API端点启用(多年,数以千计的各类设备的不同用户的)失败。
到底是怎么回事?有传言说 Chrome错误没有发送该标头进行飞行前检查,但它确实存在并设置为no-cors.
Chrome 中的安全设置或错误?可修复的服务器端还是前端?
这是由 XMLHttpRequest 发送的,而不是新的 Fetch-API。
google-chrome cors http-status-code-400 sec-fetch-site sec-fetch-mode
我有一个API从我的 React 应用程序调用的端点。那API是在同一个域上。就像是:
https://www.example.com
https://www.example.com/api/update-something
Run Code Online (Sandbox Code Playgroud)
我曾经这样cross-fetch做过这个要求。
我希望Origin在我的服务器日志上看到一个标头。事实上,我很期待看到Origin: https://www.example.com。
但这是我得到的:
Origin: undefined
// AND I ALSO GET THESE HEADERS
"sec-fetch-dest":"empty",
"sec-fetch-mode":"cors",
"sec-fetch-site":"same-origin"
Run Code Online (Sandbox Code Playgroud)
他们的意思是什么?好像Origin已经查过了?
例如:如果我得到sec-fetch-site: cross-site它意味着调用是在另一个网站/域中生成的?那是对的吗?
参考:
Sec-Fetch-Site: cross-site
Sec-Fetch-Site: same-origin
Sec-Fetch-Site: same-site
Sec-Fetch-Site: none
Run Code Online (Sandbox Code Playgroud) same-origin-policy http-headers cors fetch-api sec-fetch-site