【你问我答】跨域有哪些常见方式?

问题描述:

跨域有哪些常见方式?

回答有奖:

选取一位认真回答问题的牛友,赠送200牛币!
▶回答尽量有自己的思考,不要单纯的只是复制粘贴定理定义,或者他人blog哦~

你问我答问题汇总:点击进入
关注你问我答栏目:点击关注

你问我答 - 答问题,成大佬,拿牛币!
你问我答是牛客新栏目,每周1期几个面试中真实遇到的问题,
牛友在问题贴下留下自己的知识,经验与见解,
帮助更多牛友了解更多技术相关知识!

#面试题目##前端工程师#
全部评论
跨域:PC浏览器作为访问入口,浏览器基于安全的原则采用了同源模式策略。即协议/域名/端口匹配一致。如果有一个不匹配就不符合同源。此时就需要跨域。 WEB中常见的跨域: 1.  同一个域名下  允许通信 2.  同一个域名下不同的文件夹 允许通信 3.  同一个域名下,不同端口  不允许通信 4.  同一个域名下,不同协议 不允许通信 5.  域名和域名对应的ip 不允许通信 6.  主域相同,子域不同 不允许通信 7.  同一域名,不同二级域名 不允许通信 8.  不同域名 不允许通信
点赞 回复 分享
发布于 2020-04-02 04:57
1、JSONP JSONP 的原理很简单,就是利用 <script> 标签没有跨域限制的“漏洞”。通过 <script> 标签指向一个需要访问的地址,并且我们可以通过callback的形式就行后续的逻辑操作。 JSONP 使用简单,但是只限于 get 请求。并且当我们的项目足够大的时候,我们会发现我们很容易写出同名的callback。 2、CORS 这种方式,相比较Jsonp,CORS相对繁琐一些。因为需要浏览器和后端同时支持。实现CORS通信的关键是后端。 只要后端实现了 CORS,就实现了跨域(浏览器会自动进行 CORS 通信)。当然,如果需要兼容IE8、9这种老古董。我们需要通过 XDomainRequest 来实现。 对于服务端来说,只需要设置 Access-Control-Allow-Origin 就可以开启 CORS。具体的内容后端的小伙伴肯定很清楚。 3、document.domain 这方式相对局限性比较的大,因为只能用于二级域名相同的情况下。 比如 a.mdove.com 和 b.mdove.com 适用于该方式。 当然用法也比较的简单,只需要给页面添加 document.domain = ‘mdove.com' 即可。这样当我们的二级域名都相同,就可以实现跨域了。 4、postMessage 这种方式通常用于获取嵌入页面中的第三方页面数据。一个页面发送消息,另一个页面判断来源并接收消息。
点赞 回复 分享
发布于 2020-03-31 12:07

相关推荐

11-19 18:44
已编辑
成都理工大学 Java
程序员花海:我面试过100+校招生,大厂后端面试不看ACM,竞赛经历含金量低于你有几份大厂实习 这个简历整体来看不错 可以海投
如何写一份好简历
点赞 评论 收藏
分享
青春运维少年不会梦到...:实习大王
点赞 评论 收藏
分享
评论
点赞
2
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务