URLRequestのリクエストメソッドが固定されてしまう?
Flash からリクエストを送信する時のメモ。
URLVariables を使ってデータを渡す場合、 URLRequest のdataプロパティにセットするらしいんですが、 そのままやるとリクエストメソッドがなぜかPOSTになってしまう。
追記 PUTやDELETEだと、ちゃんと送信されるっす。berian氏サンクスです。
// URLRequestの生成。
var request:URLRequest = new URLRequest('http://example.com');
// リクエストメソッドにGETを指定。
request.method = URLRequestMethod.GET;
// リクエストするデータの作成。
var variables:URLVariables = new URLVariables();
variables.key1 = 'value1';
variables.key2 = 'value2';
// リクエストにセット。
request.data = variables;
// ローダを生成とリクエスト送信。
var loader:URLLoader = new URLLoader();
loader.load(request); // <-- 結果がなぜかPOSTになる。
URLRequest - ActionScript 3.0 コンポーネントリファレンスガイド を見てみると、 GETでもPOSTでもイケるっぽい事書いてあるんだけどなぁ。そういう仕様?それともバグ?
特にやりようも知らないので、とりあえずこうしてみたよ。
request.url += '?' + variables.toString();
var loader:URLLoader = new URLLoader();
loader.load(request); // <-- コレだとちゃんとGETになる。
URLVariables をtoStringすると、ちゃんとエンコードして返してくれるらしい。 間に入る?が気持ち悪いものの、エンコードしてくれるのはありがたいので、 ひとまずコレで落ち着いたかな。
関係ないけど、 URLRequestMethod にGETとPOSTしかないのが微妙に気になる。 PUTとDELETEも入れといてほしいなぁ。って、ちょっと思ったり。
- Posted at:
- 2007/10/21 22:08:52
- 5 Comments
- 0 TrackBacks
- Tags:
- ActionScript
- Flash
- Trackback:
- http://humming.via-kitchen.com/2007/10/21/fixed-requestmethod-on-urlrequest/trackback/
TrackBacks
まだ登録されていません。
Comments
kjirou
これはいいサンプル
他人の作った獣道を辿るのが大好きです。
berian
--------------------------------------
request.method = URLRequestMethod.GET;
--------------------------------------
ではなく、
--------------------------------------
request.method = "GET";
--------------------------------------
でもダメですかね?
そもそも、「URLRequestMethod.GET」これってどんな値を返すんでしょうか?
nobu
> kjirou氏
ちょっと刺さったみたいで良かったっす。
> berian氏
文字列の"GET"を叩き込んでみても同じっすなぁ。
URLRequestMethod.GETの中身は普通に"GET"って文字列です。
berian
あ、そうでしたかー。。
じゃぁ、結果は同じですよね・・
GETだけが固定されるのかなー。PUTとかにしても同じようにPOSTにされちゃうのかなー。
なんだろうな~
nobu
> berian氏
良いツッコミをサンクスです。
PUTやDELETEだとちゃんと送信されますなぁ。
AIRで付箋紙アプリを作った時はハマらなかったし。
う〜ん、なんでしょうなぁ?