《JavaScript设计模式》——11.2 一切只因跨域

本节书摘来自异步社区《JavaScript设计模式》一书中的第11章,第11.2节,作者:张容铭著,更多章节内容可以访问云栖社区“异步社区”公众号查看

11.2 一切只因跨域

“哦,为什么会出现,什么是跨域?”小白问。

“由于JavaScript对安全访问因素的考虑,不允许跨域调用其他页面,这里的域你可以想象成域名,不同域名下的页面是不能直接调用的。这样百度域名下的页面是不允许直接调用淘宝页面。这也是一种JavaScript中因同源策略所定义的限制,不过仅此一点限制还不够,JavaScript还对同一域名不同的端口号、同一域名不同协议、域名和域名对应的IP、主域与子域、子域与子域等做了限制,都不能直接调用。

“这么多限制,原来我刚才遇到的情况正是主域与子域之间的跨域造成的呀。那么纵使这样,在主域下,我的相册页面还能与子域中的图片上传模块所在的服务器之间进行通信么?”小白问。

“这就需要一些技巧了,你看,相册页面与图片上传模块所在的服务器之间你可抽象成两个对象,那么现在的问题是,他们之间被一条河隔开了,就像天河两端的牛郎织女,只能远远观望而不能相聚一见。他们的情感感动万物,所以才有那么多需求为他们搭桥。同样你想让跨域两端的对象之间实现通信,你就需要找个代理对象来实现他们之间的通信。”

“我明白了,虽然他们之间分开了,但是我们可以找一个代理对象来实现相互之间的通信,不过对于这类代理对象又有哪些呢?”小白问。

    原文作者:javascript设计模式
    原文地址: https://yq.aliyun.com/articles/94834
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞