ruby get post 混同 parameter

個々のプログラムの組み合わせた時、乱数のidをURLのgetで渡してるけど、POSTを使うとidをとれなくなった。

調べたら、POSTの時は

cgi.params["xxx"]
cgi.has_key?("xxx")

などの中身はformの指定したパラメータしか入ってなくて、GETの時のようにはとれない。

GETの時は

aaaa.com?xxx=yyy
ってやって
cgi.params["xxx"]

とれたんですけどねぇ。

解決

RubyのCGIライブラリで、POSTのときにQUERY_STRINGの値を参照できない(管理人日記) - むぅもぉ.jp http://muumoo.jp/news/2007/04/28/0rubycgi.html

によると、POSTした場合は普通に環境変数のQUERY_STRINGから値を取得するようだ。

ENV['QUERY_STRING']
とか
cgi = CGI.new
cgi.query_string

オライリーのCGIの本によると両方で値を渡すことは特に問題ではない。

しかし、下記のサイトによるとREST的には混同は良くないようだ。

URIのQUERY_STRINGのパラメータと、Postのボディ部のパラメータは混ぜて扱うべきではない | やむにやまれず http://blog.livedoor.jp/sparklegate/archives/50288218.html


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2010-06-04 (金) 14:52:15 (3303d)