关于跨域,你应该知道的

蓝咒 提交于 2020-03-23 17:19:39

 

首先得了解什么是跨域以及为什么会导致跨域?

跨域是由浏览器的同源策略造成的,是一种针对浏览器的安全限制,即不同源的页面之间不能相互访问。

同源策略是指请求双方的协议、域名、端口都要相同,有一个不同就会产生跨域。同时,跨域只针对请求方式为xhr类型的请求。

 

了解了跨域产生的根本原因我们才能给出针对性的解决方案

方案一:

既然跨域是由浏览器的同源策略造成的,所以我们可以选择取消浏览器的同源策略...方案虽然可行但不现实。

方案二:

也就是大家都知道的JSONP,JSONP的原理其实是通过改变请求方式为script实现的,但这种方案的一个很大缺点是只支持get请求。

方案三:

CORS(跨域资源共享Cross-origin resource sharing),该方案需要在服务端响应头设置Access-Control-Allow-Origin属性值,当然也可以在服务容器tomcat或nginx配置文件进行设置。

这种方案应该是目前应用最多的。

方案四:

代理proxy,既然跨域是由浏览器的同源策略造成的,只要请求不是从浏览器发出的就不存在跨域问题了,所以客户端借助代理服务器和后台进行请求交互,然后再由代理把响应结果回传给客户端就OK。


以上只是针对跨域的简单说明,各种解决方案的具体应用可以自行了解~

 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!