瀏覽器跨域獲取Lrc歌詞資料的解決辦法

2022-09-24 10:06:13 字數 985 閱讀 5722

獲取同乙個域的資料,可以通過xmlhttp元件或iframe來實現,不存在跨域訪問的許可權問題,因此比較簡單。

但如果要訪問不同域的資料時,由於瀏覽器的安全設定,xmlhttp沒有許可權獲取資料,而iframe沒有許可權將獲取的資料傳遞給父視窗,似乎沒有其它解決辦法。

頓悟……

網頁內引用不同域的指令碼並不會提示許可權不足,對了,就是它沒錯!

解決方法找到了,現在來簡單測試一下:

首先在51js.com伺服器上新建一頁面(test.html)。

[ctrl+a 全選 注:如需引入外部js需重新整理才能執行]

解釋兩個關鍵點:

1. lastscript用於存放上次建立的script節點的id,在下次要再新建script節點時,要刪除上次建立的節點,以免載入的指令碼越來越多,占用過多的記憶體。

&nnjfrylbsp; 2. url後面加了乙個數值d是為了防止瀏覽器快取指令碼資料,在本例中可以不加,但是如果指令碼是由伺服器動態生成的,那最好加上。

然後再建立兩個j**a 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指令碼檔案中(不是直接更改檔案www.cppcns.com副檔名),就可實現跨域獲取lrc歌詞資料了。

本文標題: 瀏覽器跨域獲取lrc歌詞資料的解決辦法

本文位址:

瀏覽器跨域

前端部分,簡單的封裝乙個promise版的ajax let myajax function headers else xhr.open method,path for let key,value of object.entries headers xhr.send body myajax heade...

瀏覽器跨域

同源策略 同源策略是乙個重要的安全策略,它用於限制乙個origin的文件或者它載入的指令碼如何能與另乙個源的資源進行互動。它能幫助阻隔惡意文件,減少可能被攻擊的媒介。協議 網域名稱 埠號 http伺服器,預設的埠號為80 tcp 木馬executor開放此埠 https securely trans...

瀏覽器設定跨域

由於專案前端使用8001埠,後端使用的8080埠,因此前端呼叫後端介面時需要跨域,在瀏覽器中需要設定跨域,否則會由於跨域安全性導致請求失敗。比如chrome中,需要新建乙個chrome瀏覽器的快捷方式,右鍵選擇屬性 新增 disable web security user data dir c ch...