▽1
●
a-kuma3 ●500ポイント ベストアンサー |
ajax_db.rb の以下のくだり
print cgi.header({ "charset"=>"UTF-8" })
cgi.out("application/json") {res.to_json}
の二行を、こう、かな。
cgi.out ({ "type" => "application/json", "charset" => "UTF-8" }) { res.to_json }
CGI クラスの out メソッドのソース。
https://github.com/ruby/ruby/blob/trunk/lib/cgi/core.rb
def out(options = "text/html") # :yield: options = { "type" => options } if options.kind_of?(String) content = yield options["length"] = content.bytesize.to_s output = stdoutput output.binmode if defined? output.binmode output.print header(options) output.print content unless "HEAD" == env_table['REQUEST_METHOD'] end
out メソッドの中で print header されているので、ヘッダが二重にレスポンスとして返り、json 形式にならなくなってるのが、きちんと動かない原因。