文档章节

跨域及解决方案--小结

我输过但从未怕过
 我输过但从未怕过
发布于 2016/03/29 16:59
字数 753
阅读 48
收藏 9

什么是域名?
简言之,就像网络上的门牌号。不同的域名指向不同的信息。比如:www.baidu.com;就是一个域名。

分析百度首页的地址,看看各个部分的专业名词。

域名是一颗倒长的树,最多允许有127个层级。
com
   |_____
            baidu.com
                   |______
                               www.baidu.com
                                          ...... //最多可划127个层级

什么是跨域?
跨域,不同域名之间的通信,就是跨域。如何区分是否是跨域呢,请看下面的例子。

以 http://www.a.com:8888 为例


综上所述,协议、主机域名、端口三者都一致 是同源,否则都是跨域。

二、接着,我们就了解下神马是同源策略?

我们知道,在同一域名下,文件是可以相互访问的。那么,跨域呢?
在跨域的情况下,由于JavaScript的保护机制,会规定一个同源策略。

同源策略,限制了一个源(origin)中加载文本或脚本与来自其它源(origin)中资源的交互方式。也就是这个规则设定了,相同域之间的文件访问,或是不同域之间文件访问的方式。
同域:可以进行任何的读写操作。
跨域:1、通常允许写操作,例:表单提交、重定向
           2、外链接资源
                a、css: <link ...>
                b、js:    <script ...> //错误信息,只会在同源脚本中打印出来
                c、img: <image ..>
                d、html5视频、音频 : <vedio> <audio>
                e、<object> <embed> <applet>
                f、@font-face //不同浏览器支持不同,有的支持跨域字体,有的仅支持同源字体
                g、<frame> <iframe>  站点可以使用X-Frame-Options消息头来阻止这种形式的跨域交互。
           3、通常不允许读操作

三、但是,如果需求就是,跨域通信呢?

1、任何跨域通信,信息获取:
      a、脚本: html5 postMessage()、jQuery jsonp
      b、数据: window.name、 cookie 、location.hash(数据有限,且不安全)

2、同主域,不同子域。
     很简单,只要设置子域的域名指向父域就好。
     例: http://s1.a.com  http://a.com
     修改http://s1.a.com 的域名指向 document.domain = "a.com";

    

       
五、安全性问题
       如果,父页嵌套的子页iframe是一个登录框,那么,父页会不会得到子页的登录账号和密码?简单的说,父页有没有权限,获得子页iframe的元素,如:input[type='text']....

       经过测试,在360、Firefox、chrome下,跨域条件下,父页是获取不到iframe中的元素的。同域条件下,是可以获取到的。


         或者,你写了一个页面,不想被别人嵌套,该怎么做?网上也有很多人的博客,被直接嵌套在自己的网站里了,其实,只要限定一下X-Frame-Options的值,就可以避免被嵌套。
         在HTTP响应头中,配置X-Frame-Options,他有三个值:
          DENY:不允许被任何页面嵌入;
         SAMEORIGIN:不允许被本域以外的页面嵌入;
          ALLOW-FROM uri:不允许被指定的域名以外的页面嵌入(Chrome现阶段不支持);


本文转载自:http://www.w3cfuns.com/notes/17659/bb090a096034a8074332a5060e9b6a3c.html

我输过但从未怕过
粉丝 1
博文 40
码字总数 6706
作品 0
朝阳
私信 提问
AJAX POST&跨域 解决方案 - CORS

 跨域是我在日常面试中经常会问到的问题,这词在前端界出现的频率不低,主要原因还是由于安全限制(同源策略, 即JavaScript或Cookie只能访问同域下的内容),因为我们在日常的项目开发时会不...

zyt_1978
2016/03/28
90
0
AJAX跨域调用相关知识-CORS和JSONP(引)

AJAX跨域调用相关知识-CORS和JSONP 1、什么是跨域 跨域问题产生的原因,是由于浏览器的安全机制,JS只能访问与所在页面同一个域(相同协议、域名、端口)的内容。 但是我们项目开发过程中,经...

辉煌霸猪
06/26
58
0
ajax跨域问题我只学一种解决方案

Ajax跨域问题的jsonp解决方案 在前端我们经常会使用Ajax来向服务器发送请求和接收服务器响应回来的数据,一般来说在同一个服务器的数据来往是没有什么问题的,但是有时使用Ajax请求数据并不局限...

JH30K
10/05
0
0
ajax跨域访问解决方案

跨域解决方案url:http://blog.csdn.net/thx9537/article/details/54836231 解决ajax跨域问题,首先来说下什么是跨域? 跨域: 解决跨域方案...

mircle
2018/03/20
1
0
Javascript跨域访问解决方案

由于安全方面的考虑,Javascript被限制了跨域访问的能力,但是有时候我们希望能够做一些合理的跨域访问的事情,那么怎么办呢? 这里分两类情况: 一、基于同一父域的子域之间页面的访问;参见...

chenlinben
2013/11/04
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Kafka再平衡机制详解

所谓的再平衡,指的是在kafka consumer所订阅的topic发生变化时发生的一种分区重分配机制。一般有三种情况会触发再平衡: consumer group中的新增或删除某个consumer,导致其所消费的分区需要...

爱宝贝丶
14分钟前
9
0
element 验证 请输入大于0的整数

data() { var validatePass = (rule, value, callback) => { // if (value <= 0) { // callback(new Error('请输入大于0的整数')); // } else { // c......

沉迷代码我爱学习
25分钟前
4
0
报表工具花钱or开源?我对比了这6个工具

近一年都在处理报表问题,调研了不少报表工具,也开发了适合公司业务的报表应用。分享一些关于如何选择报表工具的个人观点,希望对你有参考作用。 对于大部分企业来说,能花时间和人力去开发...

帆软
25分钟前
3
0
自建redis笔记--Redis cluster搭建

Redis cluster搭建 2018年十月 Redis 发布了稳定版本的 5.0 版本,推出了各种新特性,其中一点是放弃 Ruby的集群方式,改为 使用 C语言编写的 redis-cli的方式,是集群的构建方式复杂度大大降...

北极之北
25分钟前
3
0
分享一个在caffe中实现的yolo层

这是别人实现的,是我移植到cc的cpu实现,可以实现caffe中使用yolo3,但是我感觉实际效果不如darknet 好点 template <typename Dtype>inline Dtype sigmoid(Dtype x){return 1. / (1. ...

开飞色
27分钟前
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部