用jQuery发布到Sinatra的问题

时间:2011-07-29 07:17:14

标签: jquery ajax sinatra

我正在尝试向我的Sinatra应用程序发出POST请求,但我遇到了问题。基本上我有一个输入字段,提交在JS中执行类似的操作:

$.post("/", { info: "some_info"});
正如sinatra所接受的那样:

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

然而,在终端,它说:

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

这意味着它显然是在服务器端获取信息,但我不确定它为什么会抛出此错误。我以前从未使用过AJAX。一旦我得到了我将如何得到我需要的信息,我不确定。

1 个答案:

答案 0 :(得分:4)

当您发送请求时,它不是作为JSON发送的,而是作为POST数据发送的。这意味着您只需使用params对象即可在服务器端访问它。

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