GIMPShop | Top | flickr

 

Flexあれこれ

getURLとは

ActionScriptからサーバサイドへリクエストを投げて、レスポンスはブラウザで受け取る仕組み。

getURL(url:String, target:String, method:String)
url:呼び出すURL。相対パスはOSとブラウザの組み合わせによって起点が変わる。。。
target:ブラウザのターゲット。_self, _top, _blank等HTMLと同じように指定
method:GET,POSTから選択。指定をしないと自動的に選択される。

あり得ない実装や、あり得ないブラウザによる違いが。。。
  • 配列をPOSTで渡すと、リクエストにあり得ない文字列が入ってくる!
    本来はPOSTヘッダにカンマ区切りで値が入るはずだが、ActionScriptはカンマ区切りした値をPOSTヘッダに詰めている模様。ヘッダ上ではカンマはエンコードされてしまってヘッダから取り出される値は配列ではなくてカンマ区切りの文字列になってしまう。

    →へたれ実装が直っても問題がないように、ActionScriptで配列を無理矢理カンマ区切り文字列にし、サーバサイドではActionFormの セッターで配列の長さが1な場合はカンマでsplit。もともとカンマの含まれる値には使用できないが、とりあえずは強制対処。
    ※GETを使用には問題ない。getURL("www.example.com?hoge=a&hoge=b", "_blank","GET");はうまくいくのだ。
  • IEでPOSTデータが送信されない!
    getURLで送られるデータは、気持ち悪いことにActionScriptで定義してある変数全てが対象(たぶん同じスコープが対象だとは思うけど、mx.core.Applicationを継承したクラスを作ってgetURLさせてもうまくいかなかった)。
    var hogehoge;
    function test() {
        hogehoge = "fugafuga";
        getURL("www.example.com", "_blank", "POST");
    }
    
    こんな感じにするとhogehogeという名前でfugafugaという値はサーバに送信される。

    が、IEで上記コードを実行すると名前も値も送信されない。まぁ、サンプルを見ても上記のようには書いていないのは書いていないのだが、あまりにひどい。ブラウザによって違いがあるってどういうことさ、Macromedia!。HTMLとかわんないじゃん。
    ただしくはこう書く。
    var hogehoge:String;
    function test() {
        hogehoge = "fugafuga";
        getURL("www.example.com", "_blank", "POST");
    }
    
    めでたしめでたし(flash嫌い)。
  • Taged with:,

    urihttp://www.everes.net/2005/apr/06/57/

    Entry Date:2005-04-06 20:53

    Author:makoto

    ping url:http://www.everes.net/2005/apr/06/57/tbping/

    subscribe:feed with LDR

    Comments

    1 by makoto

    02:27 on

    2005-04-09

    frameにmxmlをいれた場合に、IEではgetURLの起点が変わるのか、変数が送信されなくなってしまう(FireFoxは問題無し。そもそもthis.getURLでthis.hogeの変数を送信しているのに起点が違う?阿呆か?お前は?)。

    ファイルアップロード等でフレームを使用する場合、getURLを行う本体のHTMLにiframeで別mxmlとfileのアップロードhtmlを割り当てれば何とか回避できる。

    2 by makoto

    01:49 on

    2005-05-16

    Macromediaのサポートによると、POSTでa=1&a=2&というように送信する方法はないようです。代わりにGETで配列を簡単に遅れる方法というのは紹介してくれましたが、「tomcatでGETに日本語が含まれると正しくデコードされない(仕様ということで決着済)ので」と但し書きをして質問したんですけどねぇ。ま、tomcatなんてしらんよ、JRun使えよ、ってとこなんでしょうか。

    3 by 田中

    15:53 on

    2007-09-22

    申請職務:Flexプログラム要員

    忙しい時にお邪魔します。会社は全部にFlexプログラム要員の30名ぐらいにいる。費用は600円/

    時間しかないです。ご連絡してください。よろしくお願い致します。会社のホームページ

    http://www.busycode.jp
    メールアドレス cogoing@gmail.com


    どうもありがとうございます、
    田中

    4 by makoto

    09:07 on

    2007-09-23

    田中さん?は通り名かな?
    ひどいスパム行為を仕事で行っているリテラシの低さを示すためにコメントはそのまま残します。
    そもそも日本語がおかしいし、リンク先のサイトも化け化けでまともな人は行かないと思うし。費用600円/時間って日本中どの地域でも最低賃金を割ってるんじゃね?

    Add Comment

    コメント追加








    What's Next
    Tags
    Blog Archive
    Project
    • » pymagnolia

      ma.gnolia.comのAPIを操作するPythonライブラリ。

    • » django-ja

      Djangoと日本の仲間たち。
      Djangoに関するニュースや、「仲間たち」のブログエントリをアグリゲートしています。

    • » rhaco

      PHPのWebフレームワーク。 PHPらしさを失わず直感的に記述できることを目指している。 Djangoと同じく、他のライブラリに依存しない。また、Djangoっぽいテンプレートの作り方も可能。

    • » Tracka

      スモールチーム、家族用の知共有ウェブアプリケーション。
      テキスト、画像、youtube動画、stage6動画等をトラック!

    • » BMO

      BMOは、本、CD、DVD、ゲームに印刷されているバーコードをiSightで読み取り、AmazonのAPIを利用して画像や情報をmacに保存します。iSightのついているmacで利用してください。Leopardと呼ばれているOSX 10.5以上が必要です。 保存した情報は、OSX Leopard(10.5)から搭載されたCover FlowとQuick Lookという仕組みを利用して表示します。