首页  >  文章  >  web前端  >  ## 尽管期望得到不透明的响应,但为什么在使用“no-cors”模式下的 fetch API 时会出现语法错误?

## 尽管期望得到不透明的响应,但为什么在使用“no-cors”模式下的 fetch API 时会出现语法错误?

Linda Hamilton
Linda Hamilton原创
2024-10-25 22:44:29454浏览

## Why am I getting a SyntaxError when using fetch API with 'no-cors' mode despite expecting an opaque response?

尽管响应预期不透明,但在“no-cors”模式下获取 API 错误

问题:尝试使用模式集获取 API 'no-cors' 会导致响应 response.json() 时出现语法错误。

说明:

将 fetch API 与 'no-cors' 结合使用时模式下,浏览器将静默地失败任何需要 CORS 权限的请求。抛出错误消息“Unexpected end of input”,因为获取操作返回不透明响应(意味着无法访问其内容)。

解决方案:

“如果不透明的响应满足您的需求”表示服务器未向该请求授予 CORS 权限。要解决此问题,您应该:

  • 删除“no-cors”模式:将模式设置为“cors”或完全忽略它。
  • 配置服务器授予 CORS 权限: 将适当的 CORS 标头添加到服务器的响应中,例如针对所有来源的“Access-Control-Allow-Origin: *”或“Access-Control-Allow-Origin: https” ://mysite.com' 对于特定来源。

附加说明:

CORS(跨源资源共享)可防止跨站点脚本( XSS)攻击,通过防止对不同来源的资源进行未经授权的访问。应谨慎授予 CORS 权限以维护安全。

参考:

  • [CORS 概述](https://stackoverflow.com/questions/ 6359744/什么是跨域资源共享-cors)

以上是## 尽管期望得到不透明的响应,但为什么在使用“no-cors”模式下的 fetch API 时会出现语法错误?的详细内容。更多信息请关注PHP中文网其他相关文章!

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