本地跑项目解决跨域问题

跨域问题:

指的是浏览器不能执行其他网站的脚本,它是由浏览器的同源策略造成的,是浏览器对 javascript 施加的安全限制。

同源策略:

是指协议(protocol)、域名(host)、端口号(port),都必须相同,其中一个不同都会产生跨域。

www.test.com:8000 协议(http)、主域名(test)、子域名(www)、端口号(8000)

非同源限制

无法读取非同源网页的cookie、localStorage、IndexedDB

无法接触非同源网页的DOM

无法向非同源地址发送 AJAX 请求

方法一:配置代理

nginx配置代理

前端端口4200,后端端口8083,统一在代理中配置一个监听端口

复制代码
server {
        listen 80;  
  

		location / {
            proxy_set_header    Host $host;
            proxy_set_header    X-Forwarded-For $proxy_add_x_forwarded_for;
			
            proxy_pass          http://localhost:4200;
            add_header          Access-Control-Allow-Origin *;
			proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-NginX-Proxy true;
        }
        
	    location /api/ {  
	        proxy_pass http://localhost:8083;  
	        proxy_set_header Host $host;  
	        proxy_set_header X-Real-IP $remote_addr;  
	  
	        # 添加允许跨域的配置  
	        add_header Access-Control-Allow-Origin *;  
	        add_header Access-Control-Allow-Credentials true;  
	        add_header Access-Control-Allow-Methods GET,POST,PUT,DELETE,OPTIONS;  
	        add_header Access-Control-Allow-Headers X-Requested-With,Content-Type,Content-Length,Accept,Authorization;  
    	}  
    }

方法二:后端配置

写一个关于跨域的配置类CorsConfig

java 复制代码
@Configuration // 一定不能忽略此注解

public class CorsConfig {
    @Bean
    public CorsFilter corsFilter() {
        // 1.创建 CORS 配置对象
        CorsConfiguration config = new CorsConfiguration();
        // 支持域
        config.addAllowedOrigin("*");
        // 是否发送 Cookie
        config.setAllowCredentials(true);
        // 支持请求方式
        config.addAllowedMethod("*");
        // 允许的原始请求头部信息
        config.addAllowedHeader("*");
        // 2.添加地址映射
        UrlBasedCorsConfigurationSource corsConfigurationSource = new UrlBasedCorsConfigurationSource();
        corsConfigurationSource.registerCorsConfiguration("/**", config);
        // 3.返回 CorsFilter 对象
        return new CorsFilter(corsConfigurationSource);
    }

}
相关推荐
萤丰信息6 分钟前
从 “钢筋水泥” 到 “数字神经元”:北京 AI 原点社区重构城市进化新逻辑
java·大数据·人工智能·安全·重构·智慧城市·智慧园区
week_泽1 小时前
第5课:短期记忆与长期记忆原理 - 学习笔记_5
java·笔记·学习·ai agent
像风一样自由1 小时前
android native 中的函数动态注册方式总结
android·java·服务器·安卓逆向分析·native函数动态注册·.so文件分析
兮动人1 小时前
Maven指定加载的类
java·maven·maven指定加载的类
wangkay882 小时前
【Java 转运营】Day04:抖音新号起号前准备全指南
java·开发语言·新媒体运营
亲爱的非洲野猪2 小时前
Java线程池深度解析:从原理到最佳实践
java·网络·python
亲爱的非洲野猪3 小时前
深入解析享元模式:用Java实现高性能对象复用
java·开发语言·享元模式
qq_401700413 小时前
Qt 事件处理机制
java·数据库·qt
rannn_1113 小时前
【Java项目】中北大学Java+数据库课设|校园食堂智能推荐与反馈系统
java·数据库·后端·课程设计·中北大学
NE_STOP4 小时前
SpringBoot-shiro-jwt-dubbo-redis分布式统一权限系统(完结)
java