如何实现Springboot跨域CORS处理

这篇文章主要讲解了如何实现Springboot跨域CORS处理,内容清晰明了,对此有兴趣的小伙伴可以学习一下,相信大家阅读完之后会有帮助。

创新互联公司,是成都地区的互联网解决方案提供商,用心服务为企业提供网站建设、重庆App定制开发、成都小程序开发、系统按需开发和微信代运营服务。经过数10年的沉淀与积累,沉淀的是技术和服务,让客户少走弯路,踏实做事,诚实做人,用情服务,致力做一个负责任、受尊敬的企业。对客户负责,就是对自己负责,对企业负责。

一 源(Origin)

源指URL的协议,域名,端口三部分组成,如果这个三个成分都相同,就判定是同源,否则为不同源。
同源策略(Same origin policy)是一种浏览器的约定,即在浏览器中禁止非同源访问。

二 CORS

CORS即"跨域资源共享"(Cross-origin resource sharing),是一个W3C标准。它允许浏览器向跨源服务器,发出XMLHttpRequest请求,从而克服了ajax只能同源使用的限制。springboot也提供了cors的解决方法。
下面将模拟浏览器跨域,并解决跨域问题。

三 provider工程

provider工程提供了一个接口给外部访问,端口是8080。

/**
 * @Author lsc
 * @Description <p> cors </p>
 * @Date 2019/10/20 21:32
 * @Version 1.0
 */
@RestController
public class ProviderController {
  @GetMapping("youku1327")
  public String getUser(){
    System.out.println("---------");
    return "hello youku1327";
  }
}

四 consumer

consumer 提供访问页面,跨域亲求 provider接口,端口为8082。

控制层代码:

/**
 * @Author lsc
 * @Description <p> </p>
 * @Date 2019/10/20 21:32
 * @Version 1.0
 */
@Controller
public class ComsumerController {

  @GetMapping("youku1327")
  public String getUser(){
    return "index";
  }
}

页面代码:

<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
  <meta charset="UTF-8">
  <title>cors-youku1327</title>
</head>
<body>
<script th:src="@{jquery-1.8.3.js}" type="text/javascript"></script>
<button id="button">获得用户</button>
<script>
  $("#button").click(function () {
    $.ajax({
      url: "http://localhost:8080/youku1327",
      type: "get",
      success:function (result) {
        console.log(result);
      }
    })
  });
</script>
</body>
</html>

五 跨域问题产生

两个项目分别启动后,在流量器中访问consumer,报错如下,不存在允许访问的请求头。

如何实现Springboot跨域CORS处理
如何实现Springboot跨域CORS处理

六解决方案

在provier实现WebMvcConfigurer接口,或者使用@CrossOrigin注解在方法上。

示例代码:

/**
 * @Author lsc
 * @Description <p> </p>
 * @Date 2019/10/20 23:15
 * @Version 1.0
 */

@Configuration
public class WebConfig implements WebMvcConfigurer {

  @Override
  public void addCorsMappings(CorsRegistry registry) {
    registry.addMapping("/**")
        .allowedOrigins("http://localhost:8082")
        .allowCredentials(true)
        .allowedMethods("GET", "POST", "DELETE", "PUT","PATCH")
        .allowedHeaders("*");
  }
}

页面请求结果如下:

如何实现Springboot跨域CORS处理

看完上述内容,是不是对如何实现Springboot跨域CORS处理有进一步的了解,如果还想学习更多内容,欢迎关注创新互联行业资讯频道。

当前文章:如何实现Springboot跨域CORS处理
文章分享:https://www.cdcxhl.com/article24/ggspce.html

成都网站建设公司_创新互联,为您提供动态网站面包屑导航网页设计公司Google网站营销域名注册

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

网站优化排名