当前位置: 首页 > article >正文

跨域问题解决实践

     在软件开发中,经常会遇到跨域问题,这个问题比较头疼,今天主要介绍下遇到的跨域问题解决思路及如何解决?

    1、首先是后端跨域问题

     spring boot中的跨域配置如下:

@Configuration
public class WebMvcConfig implements WebMvcConfigurer {

    @Override
    public void addInterceptors(InterceptorRegistry registry) {
    }

    @Override
    public void addFormatters(FormatterRegistry registry) {
//        registry.addConverter(new LongDateConverter());
    }

    @Override
    public void addCorsMappings(CorsRegistry registry) {
        registry.addMapping("/**") // 所有接口
                .allowCredentials(true) // 是否发送 Cookie
                .allowedOriginPatterns("*") // 支持域
                .allowedMethods("GET", "POST", "PUT", "DELETE") // 支持方法
                .allowedHeaders("*")
                .exposedHeaders("*");
    }
}
2、根据http返回状态值判断

 查看nginx日志,根据返回状态排查问题。例如:上传文件调用后端接口返回413, 标识请求体过大导致跨域,nginx配置如下:

client_max_body_size 100m;
// 默认nginx上传文件大小限制是1M
3、调用后端接口的OPTIONS(预检)请求

    在某些情况下,如果你的nginx需要配置options接口,这个接口是后端没有的,是一个默认的请求,对应的nginx配置

location / {
            # if ($request_method = 'OPTIONS'){
                  add_header Access-Control-Allow-Origin *;
                  add_header Access-Control-Allow-Methods 'POST, GET, OPTIONS, DELETE';
                  add_header Access-Control-Max-Age "3600";
                  add_header Access-Control-Allow-Credentials true;
                  add_header Access-Control-Allow-Headers *;
                  add_header Content-Type 'application/json; charset=utf-8';
                  return 204;
             }
           # proxy_pass http://127.0.0.1:8115; 
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        }


http://www.kler.cn/a/528572.html

相关文章:

  • leetcode——验证二叉搜索树(java)
  • litemall,又一个小商场系统
  • MySQL 索引
  • Leetcode::81. 搜索旋转排序数组 II
  • 反向代理模块jmh
  • 告别复杂,拥抱简洁:用plusDays(7)代替plus(7, ChronoUnit.DAYS)
  • 电路研究9.2.7——合宙Air780EP中嵌入式 TCPIP 相关命令使用方法研究
  • G. XOUR
  • pytorch实现文本摘要
  • [LeetCode]day9 203.移除链表元素
  • ASP.NET Core 中使用依赖注入 (DI) 容器获取并执行自定义服务
  • w179基于Java Web的流浪宠物管理系统的设计与实现
  • 使用pandas的read_excel()报错:
  • websocket实现聊天室应用,包括文字和图片上传_websocket onmessage怎么接收客户端的图片
  • 【ts + java】古玩系统开发总结
  • 【算法设计与分析】实验8:分支限界—TSP问题
  • 【机器学习】自定义数据集 ,使用朴素贝叶斯对其进行分类
  • Python之Excel操作 - 写入数据
  • Android学习制作app(ESP8266-01S连接-简单制作)
  • Gurobi基础语法之 addConstr, addConstrs, addQConstr, addMQConstr
  • 【个人开发】nginx域名映射及ssl证书配置踩坑记录
  • 模板(Template)
  • 代码随想录刷题day21|(哈希表篇)18.四数之和
  • 【ubuntu】双系统ubuntu下一键切换到Windows
  • Mooncake阅读笔记:深入学习以Cache为中心的调度思想,谱写LLM服务降本增效新篇章
  • 89,[5]攻防世界 web Web_php_include