
怎么更好把握技能?JS的跨域是怎么回事?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对象请求就行。
当然,完成JavaScript跨域的方法还有图片Ping、使用flash等。跨域是前端最重要的面试题之一,把握它你就比他人多了一个优势,假如你想学好开发,建议参加专业的学习方式。