关于跨域,你应该知道的

 

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

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

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

 

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

方案一:

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

方案二:

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

方案三:

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

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

方案四:

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


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

 

posted @ 2020-03-23 16:30  风岳轩  阅读(242)  评论(0编辑  收藏  举报