当前位置: 首页 > 图文教程 > 网络编程 > AJAX技术 > 浏览器跨域获取Lrc歌词数据的解决办法

AJAX技术
Ajax并不神秘:揭下各种Ajax控件和类库的小裤衩
AJAX技术基础介绍
浏览器跨域获取Lrc歌词数据的解决办法
Ajax Hacks chm文件与源代码 下载
AJAX在Post中文的时候乱码的解决方法
Ajax中要注意的问题
ajax+php中文乱码解决办法
建一个XMLHttpRequest对象池
[js]轻便的XMLHttpRequest应用函数:downloadUrl()
Ajax 无刷新在注册用户名时的应用的代码
发现个AJAX图片浏览器SIMPLEVIEWER
AJAX中同时发送多个请求XMLHttpRequest对象处理方法
Ajax实现无刷新三联动下拉框
Ajax in action 英文版配书源码 下载
ajax视频课件 在线观看地址
强烈推荐 - Ajax 技术资源中心
DWR util.js 学习笔记 整理
Ajax案例集下载:新增分页查询案例(包括《Ajax开发精要》中的两个综合案例) 下载
.NET2.0环境下的Ajax选型和应用(提供Demo源码下载)
AJAX防止页面缓存的代码

AJAX技术 中的 浏览器跨域获取Lrc歌词数据的解决办法


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-13   浏览: 53 ::
收藏到网摘: n/a

获取同一个域的数据,可以通过XMLHTTP组件或IFRAME来实现,不存在跨域访问的权限问题,因此比较简单。
但如果要访问不同域的数据时,由于浏览器的安全设置,XMLHTTP没有权限获取数据,而IFRAME没有权限将获取的数据传递给父窗口,似乎没有其它解决办法。
顿悟……
网页内引用不同域的脚本并不会提示权限不足,对了,就是它没错!
解决方法找到了,现在来简单测试一下:
首先在51js.com服务器上新建一页面(Test.html)。
点击运行可以看到效果:
[Ctrl+A 全选 提示:你可先修改部分代码,再按运行]

解释两个关键点:
1. lastScript用于存放上次建立的script节点的ID,在下次要再新建script节点时,要删除上次建立的节点,以免加载的脚本越来越多,占用过多的内存。
2. url后面加了一个数值d是为了防止浏览器缓存脚本数据,在本例中可以不加,但是如果脚本是由服务器动态生成的,那最好加上。
然后再建立两个java script脚本用于测试。
alert.js:
alert('You can see me!');
info.js:
g('myname').value='谱乐视听';
g('myblog').value='www.aboutplayer.com';
好了,谱乐已把它们放在aboutplayer.com服务器下,这样它们和Test.html就不在同一个域内了。
用浏览器打开Test.html文件。
点击“Test Alert”,应该会弹出对话框显示You can see me!。
点击“Get My Info”,应该会在文本框中显示本站的信息。
进而,若把Lrc歌词数据放入Js脚本文件中(不是直接更改文件扩展名),就可实现跨域获取Lrc歌词数据了。