本地跑项目解决跨域问题

跨域问题:

指的是浏览器不能执行其他网站的脚本,它是由浏览器的同源策略造成的,是浏览器对 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);
    }

}
相关推荐
NE_STOP10 分钟前
Vide Coding--AI编程工具的选择
java
码云数智-园园32 分钟前
C++20 Modules 模块详解
java·开发语言·spring
程序员黑豆35 分钟前
JDK 下载安装与配置详细教程
java·前端·ai编程
小宇宙Zz1 小时前
Maven依赖冲突
java·服务器·maven
swordbob1 小时前
NIO的channel中什么是 fd(File Descriptor,文件描述符)
java·开发语言·nio
咖啡八杯1 小时前
GoF设计模式——享元模式
java·spring·设计模式·享元模式
十五喵源码网2 小时前
基于springboot2+vue2的租房管理系统
java·毕业设计·springboot·论文笔记
摇滚侠2 小时前
IDEA 创建 Java 项目 手动整合 SSM 框架
java·ide·intellij-idea
源分享2 小时前
Java线程同步的多种实现方法(非常详细)
java·开发语言·jvm
Flittly2 小时前
【AgentScope Java新手村系列】(10)实战-多Agent天气助手
java·spring boot·spring