uni-app 【已解决】ios下plus.downloader的setRequestHeader无法设置Referer
uni-app 【已解决】ios下plus.downloader的setRequestHeader无法设置Referer
1 回复
更多关于uni-app 【已解决】ios下plus.downloader的setRequestHeader无法设置Referer的实战教程也可以访问 https://www.itying.com/category-93-b0.html
在 uni-app 中,使用 plus.downloader
进行文件下载时,可能会遇到在 iOS 下无法通过 setRequestHeader
设置 Referer
的问题。这个问题通常是由于 iOS 系统的安全限制导致的。
解决方案
-
使用
plus.net
代替plus.downloader
:plus.net
提供了更灵活的请求头设置,可以尝试使用plus.net
来替代plus.downloader
。const req = plus.net.createRequest(); req.setRequestHeader('Referer', 'your-referer-url'); req.open('GET', 'your-download-url'); req.onload = function (res) { console.log('Download success:', res); }; req.onerror = function (err) { console.error('Download error:', err); }; req.send();
-
使用
uni.downloadFile
:uni.downloadFile
是 uni-app 提供的跨平台下载 API,可以尝试使用它来替代plus.downloader
。uni.downloadFile({ url: 'your-download-url', header: { 'Referer': 'your-referer-url' }, success: (res) => { console.log('Download success:', res); }, fail: (err) => { console.error('Download error:', err); } });
-
使用
XMLHttpRequest
: 如果以上方法都不适用,可以尝试使用原生的XMLHttpRequest
来进行下载。const xhr = new XMLHttpRequest(); xhr.open('GET', 'your-download-url', true); xhr.setRequestHeader('Referer', 'your-referer-url'); xhr.onload = function () { if (xhr.status === 200) { console.log('Download success:', xhr.response); } else { console.error('Download error:', xhr.statusText); } }; xhr.onerror = function () { console.error('Download error:', xhr.statusText); }; xhr.send();