我一直在試圖弄清楚如何從Internet Explorer中的驅動器下載文件,一直在絞盡腦汁。跨域安全問題似乎阻止了這一點。谷歌驅動器和CORS跨域請求
一個簡單的「GET」使用XMLHttpRequest的工作在鉻和Firefox細,因爲它支持請求頭,其允許瀏覽器請求一個CORS響應,如圖的下面幾行代碼:
var xhr = new XMLHttpRequest();
xhr.open('GET', file.downloadUrl);
xhr.setRequestHeader('Authorization', 'Bearer ' + accessToken);
xhr.onload = function() {
callback(xhr.responseText);
};
xhr.send();
據說出於安全考慮,IE不支持請求標頭。由於沒有能力在這個不幸流行的瀏覽器中下載內容,我完全陷入困境。
我的問題是這樣的 - 世界上的這些其他應用程序是如何處理這個問題的?他們是否使用某種服務器端代理,並通過自己的後端彙集所有驅動器請求?這一點似乎相當艱鉅。或者,有什麼方法可以在啓動時訪問驅動器文件,我不知道?
我已經看到一些解決方案需要兩臺服務器上的文件,而據我所知,這些解決方案不是一個選項。 Google Drive是否能夠在沒有請求標題的情況下使用CORS進行響應,或者是否有另一個我不知道的API支持從Drive域中的iframe進行某種回調?
在這一點上,我幾乎死在水中。任何提示將非常感謝。抱歉,不得不問任何有關MS產品的問題。
您是否考慮過Drive API的JS客戶端:http://googleappsdeveloper.blogspot.com/2012/09/introducing-javascript-support-for.html – monsur
是的,上面顯示的代碼來自下載部分。它適用於Chrome,Firefox和Safari,不在IE中。我尋找了一種替代方法,但似乎沒有辦法在IE或者字節範圍頭部(用於部分下載)中執行CORS auth頭文件。 – djabraham
嗨Dano64,如果CORS不能在IE上工作,我們想解決這個問題。你能不能讓我知道我們需要在谷歌的最後做什麼來解決這個問題?然後我會向我們的團隊發出一個錯誤,我會盡力快速修復。 – Nivco