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

纯Dart可用的HTTP代码在Flutter运行报XMLHttpRequest错误如何解决

错误原因

你遇到的XMLHttpRequest error本质是CORS(跨域资源共享)限制:

  • 纯Dart命令行运行环境没有同源策略校验规则,所以请求可以正常发送并拿到返回结果
  • 当Flutter应用运行在Web平台时,浏览器会自动对跨域请求做CORS校验,你调用的目标站点没有配置允许你的应用域名跨域访问的响应头,浏览器就会直接拦截请求抛出该错误。
解决方案

方案1:切换运行平台

如果你不需要适配Web端,仅开发安卓、iOS或者桌面端应用,直接在对应平台的模拟器/真机上运行即可,这类平台没有CORS限制,原有代码无需修改即可正常运行。

方案2:新增代理层中转请求

如果必须适配Web平台,需要新增代理层绕过跨域限制:

  • 自行搭建后端服务,Flutter Web端仅向你自己的后端发送请求
  • 由你的后端服务转发请求到目标站点,拿到结果后再返回给前端
  • 你的后端服务配置允许你的Flutter Web域名的CORS访问规则即可。

方案3:本地开发临时绕过(仅适用于调试,不可用于生产环境)

Web端开发调试阶段,可以通过禁用浏览器安全策略临时绕过CORS限制:

  • Windows平台运行命令:flutter run -d chrome --web-browser-flag "--disable-web-security"
  • macOS平台先执行命令启动禁用安全策略的Chrome:open -n -a /Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome --args --user-data-dir="/tmp/chrome_dev_test" --disable-web-security,再运行Flutter Web项目即可。
注意事项
  • 不要在生产环境的Web应用中直接调用第三方未开放CORS的接口,临时调试的绕过方案对普通用户无效
  • 调用第三方站点接口前请确认对方的使用许可,避免违规爬取内容的法律风险。

内容的提问来源于stack exchange,提问作者aNOOBis

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 01:57:02