在如今前后端分离的时代,前端请求后端涉及到跨域请求的问题,所以在Spring-Boot如何设置才能解决跨域请求的问题呢?
一 什么是跨域请求,域指的是什么
浏览器从一个域名的网页请求另一个域名的资源时,域名,端口,协议不同,都属于跨域问题。
-
域名
主域名不同 http://www.baidu.com/index.html -->http://www.sina.com/test.js
子域名不同 http://www.666.baidu.com/index.html -->http://www.555.baidu.com/test.js
域名和域名ip http://www.baidu.com/index.html -->http://180.149.132.47/test.js -
端口
http://www.baidu.com:8080/index.html–> http://www.baidu.com:8081/test.js -
协议
http://www.baidu.com:8080/index.html–> https://www.baidu.com:8080/test.js
其中http默认80端口,https默认443端口
二 解决办法:
通过@CrossOrigin注解的方式来解决
其中@CrossOrigin中的2个参数:
origins : 允许可访问的域列表
maxAge:准备响应前的缓存持续的最大时间(以秒为单位)。
可以对整个Controller进行@CrossOrigin注解,也可以对单一方法进行注解,如图所示:
在不加参数的情况下默认响应所有源。