这是我参与11月更文挑战的第17天,活动详情查看:2021最后一次更文挑战
写在前面
今天我们来聊聊如何解决跨域,聊解决跨域之前,首先应该知道什么是跨域。
什么是跨域
通俗讲,你浏览器中输入的域名请求的资源当中,其中又有不同的域名去请求其他资源去了,这种存在不同域名请求的 称之为跨域。
比如我们前端工程师在浏览器输入localhost进入前端工程开始调整逻辑,但是接口地址调用的是后端的api工程,会出现跨域。
比如我们常用nginx解决跨域(今天我们主要学习SpringBoot解决跨域)
nginx在本地启动,比如拦截80端口,给个拦截,然后转发到真实的api接口服务
1 | java复制代码server { |
比如我们要访问www.web.server/web-api 这个线上服务,那浏览器直接输入localhost/api 即可。
好的 稍带提下nginx 后面我们进入正题,SpringBoot解决跨域的几种姿势
实现 WebMvcConfigurer
这种比较经典,用的可能比较多
1 | java复制代码@Configuration |
重新注入 CorsFilter
这种也相对比较常见
1 | java复制代码/** |
创建一个 filter 解决跨域
1 | java复制代码@Slf4j |
好了。今天关于后端如何解决跨域的就讲到这里 也欢迎大家在下方评论其他方案
总结
我们开头所讲的都是一些关于比如前端如何解决跨域。下面我简单总结几点 前端如何解决跨域,大家下面可以了解下
- 1、 通过jsonp跨域
- 2、 document.domain + iframe跨域
- 3、 location.hash + iframe
- 4、 window.name + iframe跨域
- 5、 postMessage跨域
- 6、 跨域资源共享(CORS)
- 7、 nginx代理跨域
- 8、 nodejs中间件代理跨域
- 9、 WebSocket协议跨域
这里就不一一展开赘述了,后面有时间再展开讨论
OK。我们下期再见,加油!
弦外之音
感谢你的阅读,如果你感觉学到了东西,您可以点赞,关注。也欢迎有问题我们下面评论交流
加油! 我们下期再见!
给大家分享几个我前面写的几篇骚操作
本文转载自: 掘金