跨域的历史

1.最开始使用的前后端不分离MVC的样子,然后从控制器获取到数据渲染到前端页面就可以了,调试发布都在一个web服务器下面,所以都属于同源请求,不会有这个问题。

2.随着前后端分离,后台服务器也不仅仅包括逻辑控制,数据分析,可能一些静态资源也分布在不同的服务器上。一个前端的页面和后台的API本身就不在同一个域名或者同一个域名和端口号下,再加上后台又分成了好多块,更不可能做到同源请求,所以跨域请求反而出现的更多. 另外我们可能会使用一些大公司的开源的API,也必定存在跨域请求的需求。

解决跨域的方式

1.jsonp:需要服务器端的支持

原理:标签:script img link ifram 不存在跨域请求的限制:比如cdn的链接就是使用<script>标签来跨域加载第三方的库

使用:利用script标签向服务器发请求,并且把本地的一个全局函数传给服务器,服务器接受请求给客户端返回数据,func()

问题:jsonp只能处理get请求,对于post,put ,delete,update无法处理

2.CORS跨域资源共享

后台添加对应的注解或者添加配置就可以允许某些ip访问,或者允许所有ip访问(会不安全)

 

posted @ 2023-03-20 10:54  拎着红杯子的黄鸭子  Views(11)  Comments(0Edit  收藏  举报