项目里面怎么解决跨域的?

一.前端配置跨域

proxy解决跨域

在vue.config.js中通过proxy devServer中配置反向代理。

javascript 复制代码
devServer: {
    port: port,
    open: true,
    overlay: {
      warnings: false,
      errors: true
    },
    // 配置反向代理
    proxy: {
      // 当地址中有/api的时候会触发代理机制
      '/api': {
        target: 'http://ihrm-java.itheima.net/', // 要代理的服务器地址  这里不用写 api
        changeOrigin: true // 是否跨域
        // 重写路径
        // pathRewrite: {}
      }
    }
  },
Nginx反向代理

在nginx.conf 的配置

javascript 复制代码
server {

      listen       8094; #监听端口

      server_name  localhost; #

      #charset koi8-r;

      #access_log  logs/host.access.log  main;

     location / {

          root   html;#文件根目录

          index  index.html index.htm;#默认起始页

      }
jsonp解决跨域

Jsonp 原理:动态获取script标签 缺点:只适用于get请求

cors解决跨域(后端常用)
java 复制代码
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 GlobalCorsConfig {
    @Bean
    public CorsFilter corsFilter() {
        //1.添加CORS配置信息
        CorsConfiguration config = new CorsConfiguration();
        //1) 允许的域,不要写*,否则cookie就无法使用了
        config.addAllowedOrigin("http://manage.leyou.com");
        config.addAllowedOrigin("http://www.leyou.com");
        //2) 是否发送Cookie信息
        config.setAllowCredentials(true);
        //3) 允许的请求方式
        config.addAllowedMethod("OPTIONS");
        config.addAllowedMethod("HEAD");
        config.addAllowedMethod("GET");
        config.addAllowedMethod("PUT");
        config.addAllowedMethod("POST");
        config.addAllowedMethod("DELETE");
        config.addAllowedMethod("PATCH");
        // 4)允许的头信息
        config.addAllowedHeader("*");

        //2.添加映射路径,我们拦截一切请求
        UrlBasedCorsConfigurationSource configSource = new UrlBasedCorsConfigurationSource();
        configSource.registerCorsConfiguration("/**", config);

        //3.返回新的CorsFilter.
        return new CorsFilter(configSource);
    }
}

还有好几种但是常用的也就是这几种,小伙伴们有啥需要补充的评论区留言。

相关推荐
excel3 分钟前
深入理解 Slot(插槽)
前端·javascript·vue.js
星光一影4 分钟前
Java版旅游系统/文旅系统/旅游助手/旅游攻略/公众号/小程序/app全套源码
java·小程序·开源软件·旅游·源代码管理
计算机毕设定制辅导-无忧学长9 分钟前
基于Spring Boot的酒店管理系统
java·spring boot·后端
纳于大麓29 分钟前
Android Maven私服搭建(Windows)
java·maven
哈基米喜欢哈哈哈1 小时前
低版本的JVM遇到高版本的class字节码是否会报错
java·jvm
235161 小时前
【并发编程】详解volatile
java·开发语言·jvm·分布式·后端·并发编程·原理
工业互联网专业1 小时前
基于大数据的学习资源推送系统的设计与实现 _django
vue.js·python·django·毕业设计·源码·课程设计·学习资源推送系统
洛小豆2 小时前
java 中 char 类型变量能不能储存一个中文的汉字,为什么?
java·后端·面试
爱吃烤鸡翅的酸菜鱼2 小时前
从数据库直连到缓存预热:城市列表查询的性能优化全流程
java·数据库·后端·spring·个人开发
Algebraaaaa2 小时前
Qt中的字符串宏 | 编译期检查和运行期检查 | Qt信号与槽connect写法
开发语言·c++·qt