likes
comments
collection
share

flutter web 项目如何解决浏览器跨域问题

作者站长头像
站长
· 阅读数 18

适用情况

当使用 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
评论
请登录