2013-07-24 250 views
1

我已經從谷歌驅動器下載文件通過使用谷歌驅動器API與Jav​​a。但我想用JavaScript代替java。所以我使用Drive API客戶端庫的Java腳本代碼。 我使用下面的代碼實現這一谷歌驅動器下載文件使用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); 
    } 
} 

我的問題是,我可以能夠顯示所有文件名和內容。但我無法下載這些文件。我需要做任何額外的代碼嗎?我怎樣才能保存我的本地系統中的文件。有什麼建議麼 ? 注意:如果我在瀏覽器中粘貼downloadUrl,它不會給出任何結果,只需顯示一個空白頁即可獲得file.downloadUrl的價值。

+0

這是所有你需要下載一個文件,是可以分享一些錯誤輸出和等? –

回答

0

「如果我粘貼到瀏覽器,它不會給任何結果將downloadURL」是正確的,因爲,當你使用的瀏覽器沒有認證頭。如果你檢查狀態,你會看到一個401錯誤。

我使用 「授權: '的OAuth' + gapi.auth.getToken()[ 'ACCESS_TOKEN']」 而不是 '承載'。我不確定這是否意義重大。

你確定downloadUrl是最新的嗎?這是一個短暫的屬性,所以可能鏈接已過期。

訪問令牌也可能無效。作爲Burcu說,你的答案是可能的反應和狀態對您的XHR GET內。

相關問題