首先得了解什么是跨域以及为什么会导致跨域?
跨域是由浏览器的同源策略造成的,是一种针对浏览器的安全限制,即不同源的页面之间不能相互访问。
同源策略是指请求双方的协议、域名、端口都要相同,有一个不同就会产生跨域。同时,跨域只针对请求方式为xhr类型的请求。
了解了跨域产生的根本原因我们才能给出针对性的解决方案
方案一:
既然跨域是由浏览器的同源策略造成的,所以我们可以选择取消浏览器的同源策略...方案虽然可行但不现实。
方案二:
也就是大家都知道的JSONP,JSONP的原理其实是通过改变请求方式为script实现的,但这种方案的一个很大缺点是只支持get请求。
方案三:
CORS(跨域资源共享Cross-origin resource sharing),该方案需要在服务端响应头设置Access-Control-Allow-Origin属性值,当然也可以在服务容器tomcat或nginx配置文件进行设置。
这种方案应该是目前应用最多的。
方案四:
代理proxy,既然跨域是由浏览器的同源策略造成的,只要请求不是从浏览器发出的就不存在跨域问题了,所以客户端借助代理服务器和后台进行请求交互,然后再由代理把响应结果回传给客户端就OK。
以上只是针对跨域的简单说明,各种解决方案的具体应用可以自行了解~
原文地址:https://www.cnblogs.com/fengyuexuan/p/12552994.html
时间: 2024-09-29 06:02:41