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)

これはサーバーのコンソールです。1 つ目は投稿、2 つ目は取得です。投稿は空です。

{}
{
  "{\"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 を使用して文字列に変換されていることを意味するため、サーバー側のシナトラは、ハッシュ ロケットで見つかった等号が見つかった場所でパラメーターを分割しようとします。 (「=>」)。

POST については、ブラウザのデバッグ ツールをチェックして、リクエストが正しく送信されているかどうかを確認し、.params がリクエストから POST データを取得する正しい方法であるかどうかも確認することをお勧めします。

于 2015-07-03T07:29:22.040 に答える