无法获取JSON数据:Fetch请求报SyntaxError错误求助
问题原因及解决方案
错误根源:no-cors模式的限制
你在fetch请求里添加了{mode: 'no-cors'},这个模式下浏览器会完全限制对响应内容的访问——返回的响应属于opaque类型(无法读取任何内容的响应),所以调用res.json()时因没有可解析的数据报错SyntaxError: Unexpected end of input,打印res.text()也会是空值。
解决步骤
- 移除
no-cors模式:把fetch的第二个参数删掉,改为await fetch(url);。但这需要目标服务器goldduo.com配置了CORS权限(响应头包含Access-Control-Allow-Origin,允许你的本地请求来源访问)。你可以先直接在浏览器打开https://goldduo.com/users.json,确认能正常返回有效的JSON数据。 - 本地搭建HTTP服务器(推荐):直接用
file://协议打开本地文件会存在跨域和权限限制,你可以用简单工具启动本地服务:- Python:在
C:/websites/test目录打开命令行,运行python -m http.server 8000(Python3环境),之后通过http://localhost:8000/a.html访问页面。 - Node.js:先全局安装
http-server(npm install -g http-server),再在目标目录运行http-server,按提示地址访问即可。
- Python:在
- 验证JSON文件有效性:直接访问
https://goldduo.com/users.json,检查返回内容是否为标准JSON格式(比如引号、逗号是否配对,有没有语法错误)。
内容的提问来源于stack exchange,提问作者victor
相关产品推荐
相关产品推荐

