欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

如何解决跨域的问题

程序员文章站 2022-06-02 11:26:06
...

现在我们假设从8001端口的页面。页面上有一个按钮,点击他直接发送ajax请求到8002端口的请求进行获取一个集合的数据,虽然8002端口已经返回数据到8001的页面的上,但是http协议默认是解析不到的。

如何解决跨域的问题

针对不同端口的异步请求,称为跨域,我们利用cors可以解决,方法很简单,注意以下两点

1.分清主次放,我们这里的主方就是8001端口的页面(发送异步请求)。次放是请求的8002端口(接受请求)。
2.分清主次放,我们只要在次方创建一个配置类,添加如下代码

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.cors.CorsConfiguration;
import org.springframework.web.cors.UrlBasedCorsConfigurationSource;
import org.springframework.web.filter.CorsFilter;
@Configuration

public class ConfigBena {
    @Bean
    public CorsFilter corsFilter() {
        //1.添加CORS配置信息
        CorsConfiguration config = new CorsConfiguration();
        //1) 允许的域,不要写*,否则cookie就无法使用了
        config.addAllowedOrigin("http://localhost:8081");
        #只需修改这一个地方即可,意思就是说我允许XXX端口的任何请求共享我当前的端口的资源
        //2) 是否发送Cookie信息
        config.setAllowCredentials(true);
        //3) 允许的请求方式
        config.addAllowedMethod("*");
        // 4)允许的头信息
        config.addAllowedHeader("*");

        //2.添加映射路径,我们拦截一切请求
        UrlBasedCorsConfigurationSource configSource = new UrlBasedCorsConfigurationSource();
        configSource.registerCorsConfiguration("/**", config);
        //3.返回新的CorsFilter.
        return new CorsFilter(configSource);
    }
}
相关标签: 一些配置文件