在 Fetch 请求中使用 CORS
使用 fetch 访问跨域资源时,经常会遇到“No access-control-允许原点”错误。这可以防止客户端 JavaScript 由于跨域限制而访问响应。
传递 { mode: 'no-cors' } 来 Fetch
与预期相反, { mode: 'no-cors' } 不会缓解这个问题。相反,它严格阻止 JavaScript 对响应正文和标头内容的访问。
解决方案:CORS 代理
为了克服这个问题,可以使用 CORS 代理。代理位于客户端和目标网站之间。它接受请求,将其转发到目标站点,并接收响应。至关重要的是,代理添加了“Access-Control-Allow-Origin”响应标头,允许客户端代码访问响应。
为什么 Postman 可以访问端点
虽然 Postman 允许在没有“Access-Control-Allow-Origin”标头的情况下访问端点,但 Web 浏览器会施加跨域限制。此标头是客户端 JavaScript 与响应交互所必需的。
关于禁用 CORS 的误解
当旨在“禁用 CORS”时,实际意图是禁用同源策略。事实上,CORS 提供了一种通过允许某些跨域访问来放松此政策的方法。
何时使用 { mode: 'no-cors' }
{ mode: 'no-cors' } 仅应在特定场景下考虑:
但是,即使在这些情况下,也存在限制和需要考虑的重要因素。
以上是使用 Fetch 时如何绕过'No Access-Control-Allow-Origin”错误?的详细内容。更多信息请关注PHP中文网其他相关文章!