You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用PyScript获取JSON数据遇网络错误及CORS相关疑问

问题解答

1. 错误根源

你碰到的pyodide.ffi.JsException: TypeError: NetworkError when attempting to fetch resource.,本质就是目标服务器没配置CORS跨域头。浏览器的同源策略会限制前端脚本(包括PyScript这类运行在浏览器里的代码)跨域名/端口/协议请求资源,哪怕你的JSON格式完全正确,只要服务器没返回Access-Control-Allow-Origin这类允许跨域的响应头,请求就会被浏览器拦截。你用示例链接能正常跑,就是因为示例服务器配了合法的CORS规则。

2. fetch()方法怎么选?

  • 要是你熟悉JavaScript的fetch用法,直接from js import fetch调用原生JS的fetch就行,不过返回的是JS的Response对象,得转成Python能处理的格式(比如await response.json()后转成字典)。
  • PyScript自带的pyscript.fetch是对JS fetch的封装,返回的是Python风格的Response对象,处理起来更贴合Python习惯,不用额外转换JS对象。
    两者核心功能没差,选哪个全看你自己的编码习惯。

3. 必须用支持CORS的API吗?

没错,只要你的PyScript是在浏览器里运行,就必须遵守浏览器的同源策略,必须用配置了CORS头的API或资源。如果目标服务器没法改CORS配置,给你几个替代方案:

  • 把JSON文件放到和你的PyScript页面同域名的服务器上(同源资源不受CORS限制)。
  • 搭个后端代理服务器,让代理去请求目标JSON,再把数据返给你的PyScript(代理和前端同源,绕开CORS限制)。
  • 如果JSON数据量小,直接把内容写到PyScript代码里(比如写成Python字典),省得发请求。

内容的提问来源于stack exchange,提问作者Peter M.

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.17 12:33:12