首页  >  文章  >  web前端  >  在跨源请求中使用不透明响应有哪些限制和注意事项?

在跨源请求中使用不透明响应有哪些限制和注意事项?

Patricia Arquette
Patricia Arquette原创
2024-10-22 16:24:03604浏览

What Are the Limitations and Considerations for Using Opaque Responses in Cross-Origin Requests?

使用不透明响应的限制和注意事项

不透明响应由 Fetch API 引入,表示 CORS 时跨域请求的结果已禁用。虽然它们提供了一定的隔离性,但仍存在一些需要注意的限制和潜在问题。

标头和正文访问的限制

不透明响应的主要限制是无法访问响应的标头或正文。标头和正文相关方法(json()、text())等属性不可用。这对于保护远程源的隐私至关重要。

资源使用和限制

尽管存在局限性,但不透明响应可以用作网页上的资源,如果浏览器允许非CORS跨域资源。这些资源包括 <script>、<link rel="stylesheet">、媒体元素(<img alt="在跨源请求中使用不透明响应有哪些限制和注意事项?" >、<video>、<audio>)、<object>、<embed> 和 < ;iframe>。但是,不透明响应对于字体资源无效。</script>

与缓存存储 API 的交互

在缓存存储 API 中使用不透明响应时会出现潜在的陷阱。无论实际请求状态如何,不透明响应的状态属性均为 0。由于 add() 和 addAll() 方法拒绝具有非 2XX 状态代码的响应,因此不透明响应将无法添加到缓存中。要避免这种情况,请显式执行 fetch(),然后使用不透明响应执行 put()。

navigator.storage API 和不透明响应

出于安全原因,浏览器垫不透明响应,防止跨域信息泄露。这种填充显着增加了不透明响应的报告存储大小。在 Google Chrome 中,每个不透明响应至少贡献约 7 MB 的存储使用量。如果不仔细管理,这可能会导致超出配额的异常。

使用注意事项

使用不透明响应时,请记住以下几点:

  • 不透明响应提供隔离,但限制对标头和正文的访问。
  • 它们可以用作允许非 CORS 跨源资源的网页上的资源。
  • 特殊处理是与缓存存储 API 一起使用以避免缓存添加失败所必需的。
  • 谨防 navigator.storage API 中不透明响应的夸大存储大小报告。

以上是在跨源请求中使用不透明响应有哪些限制和注意事项?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn