1

Rails 3 と JQuery を使用しています。

私は 2 つの変数を持っています。これらを JavaScript コードからコントローラーに送信し、ビューをレンダリングして変数の新しい値を取得します。

JavaScript での私のリクエストは次のようになります。

function sendGPToServer(title, address) 14     {
      var dataString = 'name=' + title + '&address=' + address;
      $.ajax({
          type: "GET",
          url: "/search",
          data: dataString,
          success: function() {
              alert("succeeded!");
          }
      });

ページコントローラー(検索アクションが存在する場所)に私は持っています

protect_from_forgery :except => [:search]

したがって、セキュリティ上の問題ではないはずです。

「成功しました!」メッセージですが、検索は呼び出されません。しかし、ホームページを手動でリロードすると、変数の値が希望どおりに Web サイト ページに入力されます。

なぜこれが起こっているのか誰にも分かりますか?HTML レイアウトのヘッダーに JavaScript が含まれている可能性がありますか?

(また: routes.rb で、pages/searchsearchに変更したので、問題にはなりません)

ありがとうございました

4

1 に答える 1

0

成功コールバック関数内で何もしない場合、なぜ変数が割り当てられると期待するのですか?

成功関数を実行した場合、そのURLに応答するメソッド(GETリクエストを使用)が呼び出され、応答として何かが返されたことを意味します(おそらく、empy HTTP 200だけです)。

もし私があなたなら、あなたのコントローラーメソッドが何を返すか、そしてあなたが必要とする状況でそれをどのように使うかを見るでしょう(fiはjsonを返し、それをどうにかして使う/いくつかのjsをレンダリングする...)

于 2011-01-30T17:36:07.957 に答える