跨域问题

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将无法获取到响应的任何数据。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 在项目开发过程中,遇到了Ajax跨域访问资源的问题,提示出现了类似于下面这样的错误: Cross-Origin R...
    vito1994阅读 9,223评论 5 14
  • 浏览器在请求不同域的资源时,会因为同源策略的影响请求不成功,这就是通常被提到的“跨域问题”。作为前端开发,解决跨域...
    SCQ000阅读 7,486评论 1 52
  • 1. 什么是跨域? 跨域一词从字面意思看,就是跨域名嘛,但实际上跨域的范围绝对不止那么狭隘。具体概念如下:只要协议...
    他在发呆阅读 4,221评论 0 0
  • 1. 什么是跨域? 跨域一词从字面意思看,就是跨域名嘛,但实际上跨域的范围绝对不止那么狭隘。具体概念如下:只要协议...
    稍纵即逝_e5e9阅读 1,540评论 0 0
  • 在做前端开发时,我们时常使用ajax与服务器通信获取资源,享受ajax便利的同时,也知道它有限制:跨域安全限制,即...
    极乐君阅读 3,823评论 0 3

友情链接更多精彩内容