Jayce Zhao

技术爱好者

  • 主页
  • 随笔
所有文章 关于我

Jayce Zhao

技术爱好者

  • 主页
  • 随笔

flutter web端解决跨域问题

2022-09-22

Flutter Web端解决跨域问题

1.当我们开发的flutter程序在ios和安卓上都运行正常时,开启web端测试。结果:

image-20220922204508015

从图上我们观察到了跨域错误。

解决方法:

1.引入代理包

1
2
3
4
5
6
7
8
9
10
11
12
13
dependencies:
flutter:
sdk: flutter


# The following adds the Cupertino Icons font to your application.
# Use with the CupertinoIcons class for iOS style icons.
cupertino_icons: ^1.0.2
flutter_swiper_null_safety: ^1.0.2
flutter_screenutil: 5.0.0+2
dio: ^4.0.6
# 引入代理类
shelf_proxy: ^1.0.1

2.在lib目录下创建server package,添加代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
import 'package:shelf/shelf_io.dart' as shelf_io;
import 'package:shelf_proxy/shelf_proxy.dart';

void main() async {
var server = await shelf_io.serve(
proxyHandler("https://xxxxxxx"),
'192.168.1.8',
7777,
);
// 这里设置请求策略,允许所有
server.defaultResponseHeaders.add('Access-Control-Allow-Origin', '*');
server.defaultResponseHeaders.add('Access-Control-Allow-Credentials', true);
print('Proxying at http://${server.address.host}:${server.port}');
}

3.修改Request类的baseUrl

1
2
3
4
5
6
7
8
9
10
11
12
13
14
import 'package:dio/dio.dart';

class Request {
static String domain = "http://192.168.1.8:7777/";
static var options = BaseOptions(
baseUrl: '${domain}api',
// connectTimeout: 5000,
receiveTimeout: 5000,
);

static Dio cli() {
return Dio(options);
}
}
  • 前端
  • 跨端
  • flutter

扫一扫,分享到微信

微信分享二维码
rxjs探索之路
flutter开发问题总结
© 2023 Jayce Zhao 著作权归作者所有
  • 所有文章
  • 关于我

tag:

  • css
  • 前端
  • 跨端
  • java
  • spring boot
  • aop
  • redis
  • lua
  • flutter
  • flutter常用组件
  • jupyter
  • python
  • conda
  • 电商
  • rxjs
  • vim
  • chome
  • 数据质量
  • hive
  • scala
  • 大数据
  • flink
  • 实时计算
  • kafka
  • 微服务
  • 高并发

    缺失模块。
    1、请确保node版本大于6.2
    2、在博客根目录(注意不是yilia根目录)执行以下命令:
    npm i hexo-generator-json-content --save

    3、在根目录_config.yml里添加配置:

      jsonContent:
        meta: false
        pages: false
        posts:
          title: true
          date: true
          path: true
          text: false
          raw: false
          content: false
          slug: false
          updated: false
          comments: false
          link: false
          permalink: false
          excerpt: false
          categories: false
          tags: true
    

小本科一枚

就职于Artefact
大数据开发