JS跨域初级解读整理
来源:互联网 发布:relief算法 python 编辑:程序博客网 时间:2024/05/01 17:19
定义:
跨域是指从一个域名的网页去请求另一个域名的资源。比如从 http://www.baidu.com/ 页面去请求 http://www.google.com 的资源**。跨域的严格一点的定义是:只要 协议,域名,端口有任何一个的不同,就被当作是跨域。**
整理
ajax或者iframe指向的地址中,二级域名、端口、协议必须与主页面完全相同,否则就算跨域
比如
a.baidu.com访问b.baidu.com 是跨域;
a.baidu.com:8080访问a.baidu.com:80 是跨域;
http://a.baidu.com访问https://a.baidu.com 是跨域;
ajax跨域,两种办法:后端写个代理接口,让后端去抓数据;或者与对方合作,用jsonp等方式传送数据
iframe跨域问题有点多,必须要得到iframe内部页面的配合才可能通信,方法也比较多:
1,假写hash值通信,父子页面各自建立轮询去检测iframe中url的hash值,通过值来通信
2,利用HTML5的postMessage,不过注意这个也是异步的
3,利用IE6\7中对navigator的bug,我前同事发现的,在ie6/7中,父子页面使用的window.navigator是同一个东西,父页面改了,子页面也会跟着变;
4,iframe中嵌套一层与顶层页面同域的页面,比如a中套b,b中套c,其中a、c同域,b做出改变后通过url给c传值,c中操作top对象也就是a,由于同域,所以不会有问题
5,我不知道的其他办法…
jsonp,
ajax(header(‘Access-Control-Allow-Orgin:http://….’))
window.name+iframe
window.location.hash+iframe
html5 postMessage+ifrme
目前就知道这五个,
jsonp最常见
以上内容整理自知乎的各位大神。。链接:https://www.zhihu.com/question/26376773
最后小白在这向给位大神致敬啦。。
- JS跨域初级解读整理
- js 初级整理
- Mysql4.1.10初级解读
- MNIST初级入门解读
- js跨域问题整理
- js初级
- 初级js
- 初级JS
- 初级日语语法整理
- MVP初级整理
- matlab初级知识整理
- 初级-图片整理
- js初级2
- js初级3
- js函数初级
- JS初级循环
- JS初级cssText
- js---初级知识点
- 虚拟机VMware安装linux无法上网解决办法
- Asp.net开发经验-利用Aspose.Words按模板导出Word
- 使用 cocoapods 的时候 pod install 无法生成xcworkspace 文件 解决方法
- 圆周率pai
- android开发:屏幕点亮与屏幕取消点亮
- JS跨域初级解读整理
- Proud Merchants HDU - 3466 dp,贪心,还是不太理解
- 实现整个网页变灰色调
- jQuery打印Html页面自动分页
- python数据分析学习笔记二
- 微信扫码支付asp.net(C#)实现步骤
- Android 6.x 新的运行时权限
- 《易经》全文翻译
- NHibernate之旅(3):探索查询之NHibernate查询语言(HQL)