美文网首页
springboot笔记—cors支持

springboot笔记—cors支持

作者: NickYS | 来源:发表于2018-04-25 14:21 被阅读0次

CORS 支持

前端页面:

<!DOCTYPE html>

<html>

<head>

<meta charset="UTF-8">

<title>跨域测试</title>

</head>

<body>

<button id="test">测试</button>

<script type="text/javascript" src="jquery-1.12.3.min.js"></script>

<script type="text/javascript">

$(function() {

    $("#test").on("click", function() {

        $.ajax({

            "url": "http://localhost:8080/fastjson/test",

            "type": "get",

            "dataType": "json",

            "success": function(data) {

                console.log(data);

            }

        })

    });

});

</script>

</body>

</html>

通过 http 容器启动前端页面代码,笔者使用 Sublime Text 的插件启动的,测试结果如下:

[图片上传中...(image-3b3eb7-1524637441592-2)]

从图中可知,前端服务器启动端口为 8088 与后端服务器 8080 不同源,因此出现跨域的问题。

现在开始解决跨域问题,可以两种维度控制客户端请求。

粗粒度控制:

方式一

@Configuration

public class WebConfig {

@Bean

public WebMvcConfigurer corsConfigurer() {

    return new WebMvcConfigurerAdapter() {

      @Override

      public void addCorsMappings(CorsRegistry registry) {

          registry.addMapping("/fastjson/**")

                  .allowedOrigins("http://localhost:8088");// 允许 8088 端口访问

      }

    };

}

}

方式二

@Configuration

public class WebConfig extends WebMvcConfigurerAdapter{

@Override

public void addCorsMappings(CorsRegistry registry) {

    registry.addMapping("/fastjson/**")

          .allowedOrigins("http://localhost:8088");// 允许 8088 端口访问

}

}

配置后,重新发送请求,结果如下:

[图片上传中...(image-952f80-1524637441591-1)]

细粒度控制:

在 FastJsonController 类中的方法上添加 @CrossOrigin(origins="xx") 注解:

[图片上传中...(image-599aa7-1524637441591-0)]

在使用该注解时,需要注意 @RequestMapping 使用的请求方式类型,即 GET 或 POST。

相关文章

网友评论

      本文标题:springboot笔记—cors支持

      本文链接:https://www.haomeiwen.com/subject/wtfylftx.html