亚洲国产精品成人无码区,公天天吃我奶躁我的比视频,亚洲国产欧美视频亚洲国产精品一区二区成人片不卡,天天躁日日躁狠狠躁视频2021,起视碰看97视频在线少妇久久久久久人妻无码, 芒果乱码一线二线三线新区 ,亚洲熟妇无码AⅤ不卡在线播放,人妻少妇乱子伦无码专区

400-800-9385
網(wǎng)站建設(shè)資訊詳細(xì)

使用a標(biāo)簽下載跨域資料

發(fā)表日期:2023-09-15 17:45:48   作者來源:黎云輝   瀏覽:1595   標(biāo)簽:    
使用a標(biāo)簽下載跨域資源是一個(gè)常見的需求,尤其在網(wǎng)頁(yè)開發(fā)中。通常情況下,a標(biāo)簽用于創(chuàng)建超鏈接,以便用戶可以點(diǎn)擊來下載或跳轉(zhuǎn)到其他頁(yè)面。然而,由于瀏覽器的同源策略,直接在a標(biāo)簽中下載跨域資源是不允許的。
 
為了解決這個(gè)問題,可以使用JavaScript來間接地下載跨域資源。一種常見的方法是使用XMLHttpRequest對(duì)象(簡(jiǎn)稱XHR)來發(fā)送GET請(qǐng)求,然后將響應(yīng)內(nèi)容作為Blob對(duì)象返回,并通過URL.createObjectURL()方法創(chuàng)建一個(gè)臨時(shí)鏈接,最后將該鏈接賦值給a標(biāo)簽的href屬性。示例代碼如下:
 

code


 
```javascript
<script>
    function downloadFile(obj) {
 
        var file_url = $(obj).attr('data-url');
        var file_name = $(obj).attr('data-name');
 
        let xhr = new XMLHttpRequest();
        xhr.onreadystatechange = function () {
            if (xhr.readyState === 4) {
                let link = document.createElement("a");
                let url = window.URL.createObjectURL(xhr.response);
                link.href = url;
                link.download = file_name;
                link.click();
                window.URL.revokeObjectURL(url);
            }
        }
 
 
        // 需要指定響應(yīng)類型為 blob
        xhr.responseType = "blob";
        xhr.open("get", file_url);
        xhr.send();
    }
</script>
```
 
在上述代碼中,downloadFile函數(shù)接收一個(gè)參數(shù)obj,表示要下載的跨域資源的內(nèi)容,其中file_url為跨域資源的URL,file_name為自定義的下載資源名稱。首先創(chuàng)建一個(gè)XMLHttpRequest對(duì)象,設(shè)置其請(qǐng)求方式為GET,并將響應(yīng)類型設(shè)置為blob。接下來,監(jiān)聽xhr對(duì)象的readyState 事件,在獲取到響應(yīng)后判斷狀態(tài)碼是否為4,如果是,則創(chuàng)建一個(gè)a標(biāo)簽,設(shè)置其href屬性為通過URL.createObjectURL()方法創(chuàng)建的臨時(shí)鏈接,并設(shè)置download屬性為要下載的文件名。最后,模擬用戶點(diǎn)擊該a標(biāo)簽,實(shí)現(xiàn)跨域資源的間接下載。由于是模擬點(diǎn)擊a標(biāo)簽進(jìn)行下載,實(shí)際上會(huì)不用于同源域名的資源下載,這種方式的下載會(huì)先下載好完整文件再輸出到頁(yè)面上,而同源域名的資源下載是實(shí)時(shí)下載,后者會(huì)顯示下載進(jìn)度在瀏覽器上,而前者沒有這個(gè)下載進(jìn)度顯示。
 
這里需要注意的是,這個(gè)方法需要遠(yuǎn)程服務(wù)器端設(shè)置CORS(跨域資源共享)允許跨域訪問,如果沒有設(shè)置遠(yuǎn)程資料跨域共享是無法下載文件的。同時(shí),由于瀏覽器的安全機(jī)制限制,該方法在某些情況下可能不適用或無法正常工作。
如沒特殊注明,文章均為方維網(wǎng)絡(luò)原創(chuàng),轉(zhuǎn)載請(qǐng)注明來自http://m.oulysa.com/news/6868.html
日韩毛大a一级视频| 99久久亚洲欧美精品1区| 久久亚洲AV无码精品色午夜麻| 在线无码一区二区三区不卡| 18禁黄无码免费网站高潮|欧美日韩国产综合草草| 国产日韩久久久久无码精品| 中文成人无码精品久久久不卡| 午夜欧美精品久久久久久久| 无码人妻一区二区三区精品视频| 人妻中文字幕无码专区| 久久香综合精品久久伊人| 亚洲成色www久久网站| 久久久无码精品亚洲日韩京东传媒| 久久精品欧美日韩精品| 三级全黄的视频在线观看| 国产亚洲人成无码网在线观看| 日韩久久久精品首页一本在线免费视频| 日韩亚洲欧美无砖专区| 亚洲国产综合在线观看不卡| 久久久久人妻一区精品色| 国产午夜无码视频在线观看| GOGOGO高清在线播放免费观看| 18成禁人视频免费午夜影视| 亚洲午夜无码久久久久| 欧洲美熟女乱又伦AV影片| 日韩免费在线观看| 九九热线有精品视频99| 99精品国产一区二区三区四区| 亚洲欧美日韩高清中文在线| 日韩高清一区二区在线观看| 亚洲热在线免费观看一二三区| 久久久久久久精品免费久精品蜜桃| 国产麻豆一精品一AV一免费| 高清欧美性猛交xxxx黑人猛交| 国产亚洲欧美综合在线区18| 啦啦啦高清在线观看视频www| 极品私人尤物在线精品首页| 中文字幕人妻熟人妻熟丝| 精品视频在线观看一区| 日韩欧美一区二区三区不卡在线| 两性午夜性刺激在线观看免费|