当前位置: 移动技术网 > IT编程>开发语言>Java > springboot跨域处理

springboot跨域处理

2019年08月09日  | 移动技术网IT编程  | 我要评论
一、什么是跨域(CORS) 跨域(CORS)是指不同域名之间的互相访问,本地服务器去访问另一个服务器的资源,这个时候就会出现跨域访问的问题,是由浏览器对于JavaScript所定义的安全限制策 同域: - 同一协议, 如http或https - 同一IP地址, 如192.168.1.2 - 同一端口 ...

一、什么是跨域(cors)

  跨域(cors)是指不同域名之间的互相访问,本地服务器去访问另一个服务器的资源,这个时候就会出现跨域访问的问题,是由浏览器对于javascript所定义的安全限制策

  同域: 
    - 同一协议, 如http或https 
    - 同一ip地址, 如192.168.1.2 
    - 同一端口, 如8080 
    以上三个条件中有一个条件不同就会产生 跨域问题

二、跨域解决方案

  1.前端解决方案

    1.1 使用 jsonp 来支持跨域的请求

    1.2 使用nodejs服务器做为服务代理

  2.后端解决方案

   这里有三种配置方式

   2.1 配置过滤器

@configuration
public class globalcorsconfig {
@bean
public corsfilter corsfilter() {
  corsconfiguration config = new corsconfiguration();
  config.addallowedorigin("*");
  config.setallowcredentials(true);
  config.addallowedmethod("*");
  config.addallowedheader("*");
  config.addexposedheader("*");

  urlbasedcorsconfigurationsource configsource = new urlbasedcorsconfigurationsource();
  configsource.registercorsconfiguration("/**", config);

  return new corsfilter(configsource);
  }
}
2.2 配置拦截器

@configuration
public class myconfiguration extends webmvcconfigureradapter {

@override
public void addcorsmappings(corsregistry registry) {
  registry.addmapping("/**")

  .allowedmethods(httpmethod.get.name(),httpmethod.post.name(),httpmethod.put.name(),httpmethod.patch.name(),httpmethod.delete.name())//允许访问的类型
  .allowcredentials(true)
  .allowedheaders("*")
  .allowedorigins("*")
  .maxage(3600);

  }
}
2.3单个请求跨域请求

@requestmapping("/hello")

@crossorigin("http://localhost:8080")

public string hello( ){

   return "hello world";

}

另:本人刚开始写博客,小白,想用博客记录问题点,欢迎大佬们评论不足的地方,多交流

如您对本文有疑问或者有任何想说的,请 点击进行留言回复,万千网友为您解惑!

相关文章:

验证码:
移动技术网