瀏覽器跨域獲取Lrc歌詞數(shù)據(jù)的解決辦法
更新時(shí)間:2007年03月14日 00:00:00 作者:
獲取同一個(gè)域的數(shù)據(jù),可以通過(guò)XMLHTTP組件或IFRAME來(lái)實(shí)現(xiàn),不存在跨域訪問(wèn)的權(quán)限問(wèn)題,因此比較簡(jiǎn)單。
但如果要訪問(wèn)不同域的數(shù)據(jù)時(shí),由于瀏覽器的安全設(shè)置,XMLHTTP沒(méi)有權(quán)限獲取數(shù)據(jù),而IFRAME沒(méi)有權(quán)限將獲取的數(shù)據(jù)傳遞給父窗口,似乎沒(méi)有其它解決辦法。
頓悟……
網(wǎng)頁(yè)內(nèi)引用不同域的腳本并不會(huì)提示權(quán)限不足,對(duì)了,就是它沒(méi)錯(cuò)!
解決方法找到了,現(xiàn)在來(lái)簡(jiǎn)單測(cè)試一下:
首先在51js.com服務(wù)器上新建一頁(yè)面(Test.html)。
[Ctrl+A 全選 注:引入外部Js需再刷新一下頁(yè)面才能執(zhí)行]
解釋兩個(gè)關(guān)鍵點(diǎn):
1. lastScript用于存放上次建立的script節(jié)點(diǎn)的ID,在下次要再新建script節(jié)點(diǎn)時(shí),要?jiǎng)h除上次建立的節(jié)點(diǎn),以免加載的腳本越來(lái)越多,占用過(guò)多的內(nèi)存。
2. url后面加了一個(gè)數(shù)值d是為了防止瀏覽器緩存腳本數(shù)據(jù),在本例中可以不加,但是如果腳本是由服務(wù)器動(dòng)態(tài)生成的,那最好加上。
然后再建立兩個(gè)java script腳本用于測(cè)試。
alert.js:
alert('You can see me!');
info.js:
g('myname').value='譜樂(lè)視聽(tīng)';
g('myblog').value='www.aboutplayer.com';
好了,譜樂(lè)已把它們放在aboutplayer.com服務(wù)器下,這樣它們和Test.html就不在同一個(gè)域內(nèi)了。
用瀏覽器打開(kāi)Test.html文件。
點(diǎn)擊“Test Alert”,應(yīng)該會(huì)彈出對(duì)話框顯示You can see me!。
點(diǎn)擊“Get My Info”,應(yīng)該會(huì)在文本框中顯示本站的信息。
進(jìn)而,若把Lrc歌詞數(shù)據(jù)放入Js腳本文件中(不是直接更改文件擴(kuò)展名),就可實(shí)現(xiàn)跨域獲取Lrc歌詞數(shù)據(jù)了。
但如果要訪問(wèn)不同域的數(shù)據(jù)時(shí),由于瀏覽器的安全設(shè)置,XMLHTTP沒(méi)有權(quán)限獲取數(shù)據(jù),而IFRAME沒(méi)有權(quán)限將獲取的數(shù)據(jù)傳遞給父窗口,似乎沒(méi)有其它解決辦法。
頓悟……
網(wǎng)頁(yè)內(nèi)引用不同域的腳本并不會(huì)提示權(quán)限不足,對(duì)了,就是它沒(méi)錯(cuò)!
解決方法找到了,現(xiàn)在來(lái)簡(jiǎn)單測(cè)試一下:
首先在51js.com服務(wù)器上新建一頁(yè)面(Test.html)。
[Ctrl+A 全選 注:引入外部Js需再刷新一下頁(yè)面才能執(zhí)行]
解釋兩個(gè)關(guān)鍵點(diǎn):
1. lastScript用于存放上次建立的script節(jié)點(diǎn)的ID,在下次要再新建script節(jié)點(diǎn)時(shí),要?jiǎng)h除上次建立的節(jié)點(diǎn),以免加載的腳本越來(lái)越多,占用過(guò)多的內(nèi)存。
2. url后面加了一個(gè)數(shù)值d是為了防止瀏覽器緩存腳本數(shù)據(jù),在本例中可以不加,但是如果腳本是由服務(wù)器動(dòng)態(tài)生成的,那最好加上。
然后再建立兩個(gè)java script腳本用于測(cè)試。
alert.js:
alert('You can see me!');
info.js:
g('myname').value='譜樂(lè)視聽(tīng)';
g('myblog').value='www.aboutplayer.com';
好了,譜樂(lè)已把它們放在aboutplayer.com服務(wù)器下,這樣它們和Test.html就不在同一個(gè)域內(nèi)了。
用瀏覽器打開(kāi)Test.html文件。
點(diǎn)擊“Test Alert”,應(yīng)該會(huì)彈出對(duì)話框顯示You can see me!。
點(diǎn)擊“Get My Info”,應(yīng)該會(huì)在文本框中顯示本站的信息。
進(jìn)而,若把Lrc歌詞數(shù)據(jù)放入Js腳本文件中(不是直接更改文件擴(kuò)展名),就可實(shí)現(xiàn)跨域獲取Lrc歌詞數(shù)據(jù)了。
相關(guān)文章
巧用ajax請(qǐng)求服務(wù)器加載數(shù)據(jù)列表時(shí)提示loading的方法
下面小編就為大家?guī)?lái)一篇巧用ajax請(qǐng)求服務(wù)器加載數(shù)據(jù)列表時(shí)提示loading的方法。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-04-04
在dom4j中使用XPath的簡(jiǎn)單實(shí)例
下面小編就為大家?guī)?lái)一篇在dom4j中使用XPath的簡(jiǎn)單實(shí)例。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2016-09-09
Ajax實(shí)現(xiàn)二級(jí)聯(lián)動(dòng)菜單
這篇文章主要為大家詳細(xì)介紹了Ajax實(shí)現(xiàn)二級(jí)聯(lián)動(dòng)菜單,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-11-11
Servlet+Ajax實(shí)現(xiàn)智能搜索框智能提示功能
這篇文章主要介紹了Servlet+Ajax實(shí)現(xiàn)智能搜索框智能提示功能,需要的朋友可以參考下2017-04-04
ajax讀取數(shù)據(jù)庫(kù)內(nèi)容實(shí)現(xiàn)二級(jí)聯(lián)動(dòng)下拉選擇菜單示例
本文為大家介紹下使用ajax技術(shù)讀取數(shù)據(jù)庫(kù)內(nèi)容并生成二級(jí)聯(lián)動(dòng)下拉選擇菜單,具體實(shí)現(xiàn)如下,感興趣的朋友可以參考下,希望對(duì)大家有所幫助2013-07-07

