美文网首页
跨域问题

跨域问题

作者: 艾石溪 | 来源:发表于2016-09-06 16:02 被阅读10次

    1 . 什么是跨域?
    为了保证安全性,浏览器有一个同源策略(所谓同源就是同协议、同域名、同端口,貌似IE有点偏差),对于不在同一个域下面的url不可以访问。
    2 . 为啥ajax的异步请求访问是跨域的呢?
    对于ajax的异步访问,就像是ajax自己所在的是一个域,而访问的地址是另一个域。要想进行访问,就是进行了跨域。这也是浏览器的一个自我安全保护的机制,ajax的访问就像是一个陌生人要查看你的身份证,而自己在浏览器中直接输入地址访问服务器是相当于警察要查看你的身份证,相比之下,浏览器更信任警察。而对于陌生人则会拒绝。ps:一个案例,若使用ajax就可以轻而易举的拿到别的地址的东西也是很恐怖的一件事情,若登陆了不安全的网站,然后恶意网站通过ajax获取到你登录银行页面的cookie,那样就悲剧了。。。
    3 . 但出于各种需要,还是要实现ajax的跨域操作的。大体的集中方法:

    • 使用flash插件,通过flash绕开浏览器的安全限制,说是要安装flash,并木有真正用过。
    • 使用jsonp进行跨域,原理是javascrip在引入<script src=""></script>这个过程中的src都是不检查跨域的。可以利用它,将接口写成了函数,然后再对函数进行响应。参考例子
    • 使用中间服务器,我想要着重学习这一方面,实现前后端分离,nodejs走起。。。
    • CORS 若浏览器支持html5就可以使用CORS
      CORS全称Cross-Origin Resource Sharing,是HTML5规范定义的如何跨域访问资源。
      了解CORS前,我们先搞明白概念:
      Origin表示本域,也就是浏览器当前页面的域。当JavaScript向外域(如sina.com)发起请求后,浏览器收到响应后,首先检查Access-Control-Allow-Origin是否包含本域,如果是,则此次跨域请求成功,如果不是,则请求失败,JavaScript将无法获取到响应的任何数据。

    相关文章

      网友评论

          本文标题: 跨域问题

          本文链接:https://www.haomeiwen.com/subject/ydvdettx.html