怎么更好掌握Web前端技术 JS的跨域是怎么回事

  怎么更好掌握Web前端技术?JS的跨域是怎么回事?JavaScript跨域是指经过JS在不一样的域之间进行数据传输或通讯,好比用ajax向一个不一样的域请求数据,或者经过JS获取页面中不一样域的框架中(iframe)的数据。只要协议、域名、端口有任何一个不一样,都被看成是不一样的域。下面来看看吧。html

  在此以前,咱们首先要了解为何须要跨域。跨域,指的是浏览器不能执行其余网站的脚本。它是由浏览器的同源策略形成的,是浏览器对JavaScript施加的安全限制。简单来讲,跨域的做用就是让你能访问不是一个域的文件。前端

awps4.jpg

  要解决跨域问题,咱们可使用如下几种方法:面试

  1、经过jsonp跨域(其实是动态建立script标签)ajax

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

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

  两个不一样域的a.html和b.html浏览器

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

  3、使用window.name来进行跨域服务器

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

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

  5、利用CORS

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

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

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

  固然,实现JavaScript跨域的方法还有图片Ping、利用flash等。跨域是前端最重要的面试题之一,掌握它你就比别人多了一个优点,若是你想学好Web前端开发,建议参加专业的学习方式。

相关文章
相关标签/搜索