如何使用Opal-JQuery AJAX发布/获取值

时间:2015-06-16 01:34:55

标签: jquery ajax opalrb

我正在尝试使用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)

这是服务器的控制台。第一个是帖子,第二个是获取。帖子是空的。

{}
{
  "{\"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

1 个答案:

答案 0 :(得分:0)

在GET中,您传递了一个在URL字符串中插入的Hash实例,这意味着正在将其转换为带有.to_s的字符串,因此服务器端sinatra会尝试将params拆分为等号,即在哈希火箭中发现(&#34; =&gt;&#34;)。

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