2011-07-29 10 views
4

SinatraアプリにPOSTリクエストを送信しようとしていますが、問題が発生しています。このようシナトラによって受信されているjQueryでSinatraに投稿する際の問題

$.post("/", { info: "some_info"}); 

post '/' do 
    data = JSON.parse(request.body.read) 
end 

しかし、ターミナルでは、それは言っている:基本的に私は上のJSでこのような何かをして提出する入力フィールドを持っている

JSON::ParserError - 706: unexpected token at '"info=some_info"': 

これは明らかにサーバー側の情報を取得していることを意味しますが、なぜこのエラーがスローされているのかわかりません。以前はAJAXを使ったことはありません。私は一度私がそれから必要なものを得るためにどのように情報を得るかわからない。

答えて

4

リクエストを送信しても、リクエストはJSONではなくPOSTデータとして送信されます。つまり、単にparamsオブジェクトを使用するだけで、サーバー側でアクセスできます。

post '/' do 
    pp params # outputs {"info"=>"some_info"} in the console 
end 
+0

ありがとうございます!私はそれがあまりに複雑であってはならないことを知っていた、私は答えを見つけることができなかった。 – captDaylight

関連する問題