手机
当前位置:查字典教程网 >编程开发 >AJAX相关 >浏览器跨域获取Lrc歌词数据的解决办法
浏览器跨域获取Lrc歌词数据的解决办法
摘要:获取同一个域的数据,可以通过XMLHTTP组件或IFRAME来实现,不存在跨域访问的权限问题,因此比较简单。但如果要访问不同域的数据时,由于...

获取同一个域的数据,可以通过XMLHTTP组件或IFRAME来实现,不存在跨域访问的权限问题,因此比较简单。

但如果要访问不同域的数据时,由于浏览器的安全设置,XMLHTTP没有权限获取数据,而IFRAME没有权限将获取的数据传递给父窗口,似乎没有其它解决办法。

顿悟……

网页内引用不同域的脚本并不会提示权限不足,对了,就是它没错!

解决方法找到了,现在来简单测试一下:

首先在51js.com服务器上新建一页面(Test.html)。

Over-Domain Data Fetching Test Page Test Alert Get My Info My Name: My Blog:

[Ctrl+A 全选 注:如需引入外部Js需刷新才能执行]

解释两个关键点:

1.lastScript用于存放上次建立的script节点的ID,在下次要再新建script节点时,要删除上次建立的节点,以免加载的脚本越来越多,占用过多的内存。

2.url后面加了一个数值d是为了防止浏览器缓存脚本数据,在本例中可以不加,但是如果脚本是由服务器动态生成的,那最好加上。

然后再建立两个javascript脚本用于测试。

alert.js:

alert('Youcanseeme!');

info.js:

g('myname').value='谱乐视听';

g('myblog').value='www.aboutplayer.com';

好了,谱乐已把它们放在aboutplayer.com服务器下,这样它们和Test.html就不在同一个域内了。

用浏览器打开Test.html文件。

点击“TestAlert”,应该会弹出对话框显示Youcanseeme!。

点击“GetMyInfo”,应该会在文本框中显示本站的信息。

进而,若把Lrc歌词数据放入Js脚本文件中(不是直接更改文件扩展名),就可实现跨域获取Lrc歌词数据了。

【浏览器跨域获取Lrc歌词数据的解决办法】相关文章:

ajax内部值外部调用不了的原因及解决方法

AJAX 缓存问题的两种解决方法(IE)

IE下jquery ajax无法获得最新数据的问题解决(IE缓存)

ajax 防止用户反复提交的2种解决方案

ie发送ajax请求返回上一次结果的解决方法

浅析Ajax后台success传来json数据的问题

Ajax缓存问题的解决方法汇总

ajax传送参数含有特殊字符的快速解决方法

解决ajax跨域请求数据cookie丢失问题

ajax post方式表单提交setRequestHeader报错解决方法

精品推荐
分类导航