0

我正在尝试使用 opal-jquery 将值发布到服务器,但没有取得多大成功。如果我尝试发帖,我将一无所获。Get 给我一个不太有用的字符串中的值。

这是浏览器的控制台输出:

[Log] {"values"=>"10:30 AM, 11:30 AM, 12:30 PM, 1:30 PM, 2:30 PM, 3:30 PM"} (opal.min.js, line 7)

这是来自服务器的控制台。第一个是post,第二个是get。帖子是空的。

{}
{
  "{\"values\""   => ">\"10:30 AM, 11:30 AM, 12:30 PM, 1:30 PM, 2:30 PM, 3:30 PM\"}"
}

浏览器端代码:

  <script type="text/ruby">
Document.ready? do
  puts 'Document ready'

  Element.find('#setTimeButton').on :click do |e|
    e.stop
    e.prevent
    p values = {values: "#{Element.find('#tourtime1').value}, #{Element.find('#tourtime2').value}, #{Element.find('#tourtime3').value}, #{Element.find('#tourtime4').value}, #{Element.find('#tourtime5').value}, #{Element.find('#tourtime6').value}"}
    HTTP.post("/tour-submit-post", payload: values)
    HTTP.get("/tour-submit?#{values}")
  end
end

服务器端代码:

  post "/show-submit-post", response_type: :json do |request|
    mp request.params
    {a: 1, b: 2}
  end

  get "/tour-submit" do |request|
     mp request.params
     {a: 1, b: 2}
  end
4

1 回答 1

0

在 GET 中,您传递了一个插值在 URL 字符串中的 Hash 实例,这意味着它被转换为带有 .to_s 的字符串,因此服务器端 sinatra 尝试在找到等号的地方拆分参数,该等号位于哈希火箭中(“=>”)。

对于 POST,我建议检查浏览器调试工具以查看请求是否正确发送,然后检查 .params 是否是从请求中获取 POST 数据的正确方法。

于 2015-07-03T07:29:22.040 回答