gdrive javascript sdk下载url

gdrive javascript sdk下载url,javascript,download,google-drive-api,Javascript,Download,Google Drive Api,我使用gDrive SDK for 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.se

我使用gDrive SDK for 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请求完成时,如何提示浏览器打开下载窗口。如何使用回调函数打开本地保存文件的对话框?

不幸的是,您的方法行不通

由于标准浏览器安全约束,您无法从Javascript保存文件。[1]

您需要做的是在新窗口中使用downloadUrl,或者在iframe中使用src,以使浏览器下载该文件,并提示用户保存该文件。您需要添加

&access\u token=ya29.YOURACCESSTOKENHERE

指向URL以避免401错误

注释 1.是的,我知道HTML5开始支持从Javascript进行有限的文件系统访问,但是(1)它并不广泛可用,(2)对文件的保存位置有限制,(3)不是OP要求的用户体验