flutter web 项目如何解决浏览器跨域问题
适用情况
当使用 flutter 构建 web 项目,直接运行在 chrome 浏览器发出网络请求会发生跨域错误 strict-origin-when-cross-origin(CROS)
,比如在 dart 代码直接用 dio.get("https://www.baidu.com")
,dio 会报错,在 chrome 的 DevTools 中会发现 CROS 错误。
一般解决办法
一般我们写一个网页的时候,网络请求可以通过后台服务器转发,由服务器解除跨域限制即可,但是如果只想利用 flutter 开发的便捷性写一个简单的数据获取,如 movie_tv,则可以按一下步骤操作,即可允许 chrome 执行跨域请求。
特殊解决方案
To run web in Chrome
1- Go to flutter\bin\cache and remove a file named: flutter_tools.stamp
2- Go to flutter\packages\flutter_tools\lib\src\web and open the file chrome.dart.
3- Find '--disable-extensions'
4- Add '--disable-web-security'
5- Add '--user-data-dir=~/Desktop/chromedata'
再次运行即可看到数据访问正常。
推荐
推荐一个简单的项目 movie_tv,该项目可以了解到 dart 的网页解析与展示、dart gbk 格式转换成 utf8 等方面的内容。
转载自:https://juejin.cn/post/7072193601345683469