2011-09-14 10 views
3

私のASP.Netアプリケーション経由でGoogle Docsからファイルをダウンロードしようとしています。リダイレクト後にHTTPヘッダーを保持する

私はOAuthを使用しているので、署名と認証文字列を生成しました。それは、リソースのアクセスするには、Googleドキュメントの文書から

、私は追加する必要があります。

Authorization: <authorization string> 

リクエストヘッダに。

私はリダイレクトを行うためのスニペットを書きました:Firebugのから見た

context.Response.AddHeader("GData-Version", "3.0"); 
context.Response.AddHeader("Host", downloadLinkUrl.Host); 
context.Response.AddHeader("Authorization", authorizaString); 
context.Response.RedirectLocation = downloadLink; 
context.Response.Redirect(downloadLink); 

それはdownloadLinkが、ヘッダ情報にリダイレクトは、不足しています。したがって私は401 Not Authorizedを取得します。

read upの中には、それができないと言われています。ハックはありますか?

ありがとうございました。

答えて

2

ヘッダーを転送することはできません。あなたの唯一の賭けは、リダイレクトページでjQuery/javascriptを使ってヘッダを追加し、GETリクエストを作成することです。私はAJAXリクエストがファイルのダウンロードに使用できないので、あなたができるかどうかも分かりません。

実際には、どちらもうまくいかないと思います。だから私はいいえ、あなたはファイルのダウンロードのためにこれを行うことはできません。ただし、サーバーからリクエストを作成してクライアントにストリーム配信できますか?

EDIT は、私が過去にこれに答え:jQueryの取得ので jQuery delivery of a file with AJAX call

はアヤックスの短縮形である - これは「取得」を指定するjQueryのAJAX呼び出しを行うことによって動作する可能性があります。試してみて、結果をお知らせください。

いくつかのコードを参照してください

http://api.jquery.com/jQuery.ajax#options

Pass request headers in a jQuery AJAX GET call

+0

innitial計画だったが、それは、私のサーバーからクライアントブラウザに、私のサーバーにGoogleドキュメントからファイルをストリーミングする二重の時間がかかります。 – VHanded

+0

上記の編集を参照 –

+0

5時間後、jQueryメソッドは自分のサイトをリクエストしても動作しますが、私の場合は「同じ起源ポリシー」と呼ばれるため、他のサイト(Google Docs)をリクエストできません。その他の回避策? – VHanded