2009-03-27 17 views
3

イメージAPIを使用して作業する必要があり、残りのWebページに表示するイメージストリームを取得するためにPOSTリクエストを行う必要があるということです。JavaScriptを使用して画像ストリームをレンダリングできますか?

ページロード時にjQueryを使用してそのサービスにajaxリクエストを行うことはできますが、バイナリストリームが返されます。とにかくJavaScriptがそのバイナリ文字列を受け取り、ヘッダーにあるコンテンツタイプを表示することはできますか?

答えて

2

HTTP GET操作でURLが参照されたときにストリームが配信されるようにする必要があると思われます。その場合、JavaScriptに画像のsrc属性をそのURLに設定します。これはASP.NETで行われているのですが、.ashxハンドラを使用して画像をストリーミングします。次に、http://site.com/images/imagehandler.ashx?parametersを参照します。

+0

私はストリームの配信方法を制御していません。これをGetOperationで手配することはできません。 もしかすると、おそらく私はかなりの通過をするプロキシを書くことができました... – taelor

+0

このようなプロキシはうまく動作します。非同期ハンドラでWebRequestを使用するだけです。 –

1

あなたの現在のajax通信に使用しているURLに画像のsrc属性を設定できませんか?または、最初にajaxコールから他の情報を除外しなければなりませんか?

+1

imgタグはPOST要求ではなくGET要求を使用します。だから私はimgタグのsrc属性が動作するとは思わない。 – taelor

0

ただ、SRCとして画像を返すURLをimg要素を作成するためにJavaScriptを使用します。

// jquery 
$(#some-id).append('<img src="/get-image/?foo=bar"/>'); 
+0

imgタグはPOST要求ではなくGET要求を使用します。これは簡単だったと思う。 – taelor

1

はインラインフレームをターゲットにして、フォームのPOSTリクエストを行います。これが唯一の方法です。

+0

yah、私はこのメソッドを使って実装しました。それはちょっとしたハックですが、それはちょっとした仕事です。私はあなたに+1を与えますが、これは質問に答えません$) – taelor

3

あなたが探しているのは、Data URI Schemeです。これは、必要なバイナリデータを指定する本当に長いURIをフォーマットすることができます。

+0

結果のストリームが '残りのページ'に表示される場合、私はそれがあまりにも大きすぎてデータ:URIに... – Martijn

+0

これを見ましたが、バイナリをbase64に変換する方法がわかりません。あなたは良いブログ投稿を知っていますか?これはIE6でもIE7でも動作しますか? – taelor

+0

http://webdesign.tutsplus.com/tutorials/htmlcss-tutorials/the-what-why-and-how-of-data-uris-in-web-design/ – tree

関連する問題