怎么能学好Web前端开发,如何去解决JS跨域问题

如何去解决JS跨域问题?怎么能学好Web前端开发?JavaScript跨域是指通过JS在不同的域之间进行数据传输或通信,比如用ajax向一个不同的域请求数据,或者通过JS获取页面中不同域的框架中(iframe)的数据。只要协议、域名、端口有任何一个不同,都被当作是不同的域。那么如何解决跨域问题呢?下面来看看吧。

在此之前,我们首先要了解为什么需要跨域。跨域,指的是浏览器不能执行其他网站的脚本。它是由浏览器的同源策略造成的,是浏览器对JavaScript施加的安全限制。简单来说,跨域的作用就是让你能访问不是一个域的文件。

要解决跨域问题,我们可以使用以下几种方法:

一、通过jsonp跨域(实际上是动态创建script标签)

jsonp(json with Padding)是资料格式json的一种“使用模式”,可以让网页从别的网域要资料。jsonp也叫填充式json,是应用json的一种新方法,只不过是被包含在函数调用中的json。jsonp由两部分组成:回调函数和数据。回调函数是当响应到来时应该在页面中调用的函数,而数据就是传入回调函数中的json数据。

二、通过document.domain+ iframe (只有在主域相同的时候才能使用该方法)

两个不同域的a.html和b.html

解决办法:在两个页面都插入document.domain,这样就能访问iframe里window对象的各种属性。

三、使用window.name来进行跨域

原理:在一个窗口(window)的生命周期内,窗口载入的所有的页面都是共享一个window.name的,每个页面对window.name都有读写的权限

四、使用HTML5的window.postMessage方法来跨域传送数据

五、利用CORS

CORS是自定义HTTP头部,使浏览器和服务器对比,从而决定请求和响应是否应该进行。

IE8使用XDR对象实现CORS,和XHR类似用法

现代浏览器使用普通的XMLHttpRequest对象请求就行。

小编推荐一个学Web前端的学习裙【 547,302,383 】,无论你是大牛还是小白,是想转行还是想入行都可以来了解一起进步一起学习!裙内有开发工具,很多干货和技术资料分享!

当然,实现JavaScript跨域的方法还有图片Ping、利用flash等。跨域是前端最重要的面试题之一,掌握它你就比别人多了一个优势。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1. 什么是跨域? 跨域一词从字面意思看,就是跨域名嘛,但实际上跨域的范围绝对不止那么狭隘。具体概念如下:只要协议...
    他在发呆阅读 4,210评论 0 0
  • 作者:Qyouu链接:https://www.imooc.com/article/70123来源:慕课网 本文对原...
    六个周阅读 5,054评论 0 14
  • 转载自:https://segmentfault.com/a/1190000007326671bo 前端跨域整理 ...
    天字一等阅读 3,339评论 0 3
  • 1. 孩子小的时候,我常给他洗澡。 孩子在澡盆里愉快地玩他的小船,嘴里配合着“呜呜”的声音。 但是我发现他的船是底...
    能辽阅读 3,161评论 2 8
  • 今天早晨想到一个问题, 朋友不是特别亲密的朋友的过生日,我想到了去祝福,去发红包 当时就没有动作,总是想等到晚上或...
    师师成长记阅读 1,198评论 0 0

友情链接更多精彩内容