“跨域”解决办法

187 阅读2分钟

跨域(jsonp,ajax)

            (1)如果需要从不同的服务器(不同域名)上获取数据就需要跨域HTTP请求
            (2)跨域请求在网页上非常常见。很多网页从不同服务器上载入CSS,图片,Js脚本
            (3)在现代浏览器中,为了数据安全,所有请求被限制在同一域名下。如果要调用不同站点的数据
            则需要跨域
            
            jsonNP:ajax请求受同源策略影响,不允许进行跨域请求,而script标签src属性中的链接却可以
            访问跨域js脚本,利用这个特性,服务端不在返回json格式的数据,而是返回一段调用某个函数的
            js代码,在src中进行调用,这样实现了跨域
            

如何实现跨域

          jsonNP:通过动态创建script,请求一个带参数网址实现跨域通信。document.domain+iframe跨域:
          两个页面都通过js,强制设置document+domain为基础的主域,就实现了同域
          
          location.hash+iframe跨域:a欲与b跨域相互通信,通过中间c来实现,三个页面,不同欲之间利用
          iframe的location.hash传值,相同域之间之间直接js访问来通信。
          
          window.name+iframe跨域:通过iframe的src属性由外域专向本地域,跨域数据既由iframe的
          windown.name从外域传递到本地域
          postMessage:跨域操作的window属性之一
          
          Cors:服务端Access-control-Allow-Origin即可,前端无须设置,若要带cookie请求,前后端都
          需要设置
          
          代理跨域:起一个代理服务器,实现数据转发
     

ajax同源策略

       同源策略是一种安全协议,是客户端脚本中重要的安全度量标准,指一段脚本只能读取同一来源的窗口的
       文档的属性,同源策略要求协议,域名,端口号一致
       
       为什么要同源策略?
       为了数据安全性,若没有同源策略的限制,那么黑客就可以在他的页面上任意请求你的后端数据,造成数
       据库内容盗取,隐私数据泄露