美文网首页Flutter问题
问:Flutter - 跨域问题

问:Flutter - 跨域问题

作者: 囧rg | 来源:发表于2023-04-20 13:06 被阅读0次

    在web开发的过程中,请求本地服务器接口时,总是遇到跨域的问题,既可以设置前台代理,也可以设置服务器接口支持跨域。

    第一种:通过设置服务端接口支持跨域。

    package com.x.fm.config;
    
    import org.springframework.context.annotation.Configuration;
    import org.springframework.core.Ordered;
    import org.springframework.web.servlet.config.annotation.CorsRegistry;
    import org.springframework.web.servlet.config.annotation.ViewControllerRegistry;
    import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;
    
    @Configuration
    public class DefaultView extends WebMvcConfigurerAdapter {
    
        /**
         * 跨域支持
         */
        @Override
        public void addCorsMappings(CorsRegistry registry) {
            registry.addMapping("/**").allowedOrigins("*").allowedMethods("*").allowCredentials(false).maxAge(3600);
        }
    }
    

    第二种:通过设置nginx的方式。

    location /{
     add_header Access-Control-Allow-Origin *; 
     add_header Access-Control-Allow-Methods '*'; 
     add_header Access-Control-Allow-Headers '*'; 
      
     if ($request_method = 'OPTIONS') { 
     return 204; 
     }
    

    第三种:代理服务shelf_proxy

    这种方式最简单,网上的资料一堆,但是我试验了很多次,都没有成功,偶尔成功过,也不知道什么原因。

    第四种:删除,修改文件

    例如:在flutter\packages\flutter_tools\lib\src\web\chorme.dart文件中添加 --disable-web-security ......
    这种方式也尝试过,不太理想,没有成功,没太大的深究,大家可以尝试。

    ps:

    web 无法从另一个域加载网络图像,这是图片跨域的问题导致的。
    我无法通过 API 调用从其他域加载 flutter web 中的网络图像.收到这个错误
    试图从另一个域加载图像?

    解决:
    修改 阿里云(其他的云服务器也差不多) OSS的 跨域设置
    设置跨域规则:来源 * ,允许Method Get,返回 Vary: Origin ✅,如果不行,刷下CDN缓存

    相关文章

      网友评论

        本文标题:问:Flutter - 跨域问题

        本文链接:https://www.haomeiwen.com/subject/tpvrjdtx.html