我正在使用gDrive SDK中的代码片段来获取javascript下载文件:
function downloadFile(file, callback) {
if (file.downloadUrl) {
var accessToken = gapi.auth.getToken().access_token;
var xhr = new XMLHttpRequest();
xhr.open('GET', file.downloadUrl);
xhr.setRequestHeader('Authorization', 'Bearer ' + accessToken);
xhr.onload = function() {
callback(xhr.responseText);
};
xhr.onerror = function() {
callback(null);
};
xhr.send();
} else {
callback(null);
}
}
如何在完成ajax请求时提示浏览器打开下载窗口。如何打开回调函数以打开本地保存文件的对话框?
答案 0 :(得分:1)
不幸的是,你的方法不起作用。
由于标准的浏览器安全限制,您无法从Javascript保存文件。[1]
您需要做的是在新窗口中使用downloadUrl,或者在src中使用iframe使浏览器下载文件,并提示用户保存文件。您需要添加
&安培; =的access_token ya29.YOURACCESSTOKENHERE
到URL以避免401错误。
注 1.是的我知道HTML5开始支持来自Javascript的有限文件系统访问,但是(1)它没有广泛可用,(2)对文件的保存位置有限制,(3)不是用户体验OP要求。