私は自分の頭を悩ませて、Internet Explorerのドライブからファイルをダウンロードする方法を見つけようとしています。クロスドメインセキュリティの懸念がこれを防止しているようです。GoogleドライブとCORSのクロスドメインリクエスト
var xhr = new XMLHttpRequest();
xhr.open('GET', file.downloadUrl);
xhr.setRequestHeader('Authorization', 'Bearer ' + accessToken);
xhr.onload = function() {
callback(xhr.responseText);
};
xhr.send();
:次のコード行に示すように、それは、ブラウザがCORS応答を要求することを可能にするリクエストヘッダを、サポートしているためにXMLHttpRequestを使用して
簡単な「GET」は、ChromeとFirefoxで正常に動作しますIEはセキュリティ上の理由から、要求ヘッダーをサポートしていません。この残念ながら人気のあるブラウザでコンテンツをダウンロードする機能がないため、私は完全に固執しています。
私の質問はこれです - この問題を扱うこれらの他のアプリケーションはどのように世界にありますか?彼らは何らかの種類のサーバー側のプロキシを使用していて、すべてのドライブ要求を独自のバックエンドで集めていますか?これは現時点ではむしろ難しいようです。または、私が気付いていない、起動時にドライブファイルにアクセスする方法はありますか?
私の知る限りでは、両方のサーバーにファイルを必要とするいくつかのソリューションがありましたが、これはオプションではありません。 GoogleドライブにはリクエストヘッダーなしでCORSで応答する機能がありますか、ドライブドメイン内のiframeから何らかのコールバックをサポートしていることに気づいていない別のAPIがありますか?
私はこの時点で水中でかなり死んでいます。どんなヒントも大歓迎です。 MSの製品に関する何か質問をしなければならないと申し訳ありません。問題はIEがAuthorization
ヘッダを渡すあなたが追加することができますされていないかである場合、あなたはAuthorization
ヘッダと同じ動作をしますaccess_token
URLパラメータを使用してアクセストークンを渡してみてください
Drive APIのJSクライアントを検討しましたか:http://googleappsdeveloper.blogspot.com/2012/09/introducing-javascript-support-for.html – monsur
上記のコードはダウンロードセクションから取得しました。 Chrome、Firefox、Safariでうまく動作しますが、IEでは動作しません。私は別の方法を探しましたが、IE内のCORS認証ヘッダー、またはバイト範囲ヘッダー(部分ダウンロード用)を実行する方法がないようです。 – djabraham
Hey Dano64、CORSがIE上で動作していない場合は、これを修正したいと考えています。これをIE用に修正するには、Googleの目的を達成するために必要なことを正確に教えてください。その後、私たちのengチームにバグを報告し、私は迅速な修正を得るつもりです。 – Nivco