Ich habe mir den Kopf zerbrochen, um herauszufinden, wie man eine Datei von Drive in Internet Explorer herunterladen kann. Es scheint, dass Cross-Domain-Sicherheitsbedenken dies verhindern.Google Drive und CORS-Cross-Domain-Anfragen
Ein einfaches 'GET' XMLHttpRequest mit funktioniert in Chrome und Firefox, weil es Request-Header unterstützt, mit denen der Browser eine CORS Antwort verlangen, wie sie in den folgenden Codezeilen gezeigt:
var xhr = new XMLHttpRequest();
xhr.open('GET', file.downloadUrl);
xhr.setRequestHeader('Authorization', 'Bearer ' + accessToken);
xhr.onload = function() {
callback(xhr.responseText);
};
xhr.send();
IE unterstützt die Anforderungsheader nicht, angeblich aus Sicherheitsgründen. Da ich in diesem leider sehr beliebten Browser keine Inhalte herunterladen kann, bleibe ich völlig hängen.
Meine Frage ist diese - wie in der Welt sind diese anderen Anwendungen, die sich mit diesem Problem befassen? Verwenden sie einen serverseitigen Proxy irgendeiner Art und leiten alle Laufwerkanforderungen über ihr eigenes Back-End weiter? Das scheint an diesem Punkt eher beschwerlich. Oder gibt es eine Möglichkeit, auf die Laufwerksdatei beim Start zuzugreifen, die mir nicht bekannt ist?
Ich habe einige Lösungen gesehen, die Dateien auf beiden Servern erfordern, die soweit ich weiß, keine Option darstellen. Hat Google Drive die Möglichkeit, mit CORS ohne den Anforderungsheader zu antworten, oder gibt es eine andere API, von der ich nicht weiß, dass sie eine Art Rückruf von einem Iframe innerhalb der Drive-Domäne unterstützt?
Ich bin an diesem Punkt ziemlich tot im Wasser. Irgendwelche Tipps würden sehr geschätzt werden. Entschuldige, dass du irgendwelche Fragen zu MS-Produkten hast.
Haben Sie den JS-Client für die Google Drive-API in Betracht gezogen: http://googleappsdeveloper.blogspot.com/2012/09/introducing-javascript-support-for.html – monsur
Ja, der oben gezeigte Code stammt aus dem Download-Bereich. Es funktioniert hervorragend in Chrome, Firefox und Safari, nur nicht in IE. Ich suchte nach einer alternativen Methode, aber es scheint keine Möglichkeit zu geben, den CORS-Auth-Header innerhalb von IE oder einen Bytebereich-Header (für einen partiellen Download) auszuführen. – djabraham
Hey Dano64, Wenn CORS nicht auf IE arbeiten, wollen wir das beheben. Könnten Sie mir bitte genau mitteilen, was wir am Ende von Google tun müssten, um dies für IE zu beheben? Ich werde dann einen Fehler mit unserem eng Team einreichen und ich werde versuchen, eine schnelle Lösung zu bekommen. – Nivco