您好,欢迎来到五一七教育网。
搜索
您的当前位置:首页springboot指定服务器,SpringBoot服务器端解决跨域问题

springboot指定服务器,SpringBoot服务器端解决跨域问题

来源:五一七教育网

本文导航

SpringBoot解决跨域问题的两种方案:

1、通过给方法或者类加注解的形式,@CrossOrigin。

2、继承接口,重写addCorsMappings方法。

第一种方式:

@RestController

@CrossOrigin("http://localhost:8081")

public class BaseController {

@GetMapping("/hello")

public String testGet(){

return "get";

}

@PutMapping("/doPut")

public String testPut(){

return "put";

}

}

指定请求来源,可以写成“*”,表示接收所有来源的请求。

第二种方式:

@Configuration

public class WebMvcConfig implements WebMvcConfigurer {

@Override

public void addCorsMappings(CorsRegistry registry) {

registry.addMapping("/**").allowedOrigins("http://localhost:8081")

.allowedHeaders("*")

.allowedMethods("*")

.maxAge(30*1000);

}

}

allowOrigins也可以写成allowedOrigins(" * "),表示接收所有来源的请求。

注意点:

1、路径来源的写法问题

如果后台指定路径来源为:http://localhost:8081

后台设置:

@Override

public void addCorsMappings(CorsRegistry registry) {

registry.addMapping("/**").allowedOrigins("http://localhost:8081")

.allowedHeaders("*")

.allowedMethods("*")

.maxAge(30*1000);

}

前端请求:

doGet = function () {

$.get('http://localhost:8080/hello', function (msg) {

$("#app").html(msg);

});

}

doPut = function () {

$.ajax({

type:'put',

url:'http://localhost:8080/doPut',

success:function (msg) {

$("#app").html(msg);

}

})

}

启动服务,浏览器里访问:

http://localhost:8081/index.html

正常返回结果

浏览器里访问:

http://127.0.0.1:8081/index.html

报跨域错误如下:

所以说,浏览器访问路径需要与后台allowOrigin里设置的参数一致。

那如果代码里的访问路径可以不一样吗,比如:

doGet = function () {

$("#app").html(msg);

});

}

doPut = function () {

$.ajax({

type:'put',

url:'http://192.168.1.26:8080/doPut',

success:function (msg) {

$("#app").html(msg);

}

})

}

经过测试,是可以的,只要浏览器里访问页面的路径写法与后台保持一致就可以了。

2、携带Cookie

以上就是SpringBoot服务器端解决跨域问题的详细内容,更多关于SpringBoot 解决跨域的资料请关注脚本之家其它相关文章!

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- 517ttc.cn 版权所有 赣ICP备2024042791号-8

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务