2011-01-30 29 views
1

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

私は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ページに埋め込まれます。

誰もがなぜこのようなことが起こるのか知っていますか?それは私のjavascriptが私のhtmlレイアウトのヘッダに含まれているからでしょうか?

(も:routes.rbをして、私はそれが問題になることはありません検索ページ/検索を変更している)あなたの変数が割り当てられますことを期待していないのはなぜ

はあなたに

+0

てみてくださいあなたがそれが404ing/500ingかどうかを見ることができるようにerror()ハンドラを追加してください。 – jamiew

答えて

0

ありがとうございましたあなたが成功のコールバック関数の中で何もしないのであれば?

成功関数が実行されている場合、そのURLに応答するメソッド(GET要求あり)が呼び出され、何かが返されました(おそらくempy HTTP 200)。

私があなただった場合、私は何をお使いのコントローラメソッドの戻りで、あなたが必要な状況でそれを使用する方法について見なければなりません(FI返すJSONをし、いくつかのJSをレンダリング/何とかそれを使用する...)

+0

事は、私が変数の値を取得するときに、変数の値を設定するメソッドを使用することです。その後、私のページが再びレンダリングされるたびに、ビュー自体が値が変更され、ページに異なる値を書き込むことに気付きます。 コントローラのアクションが呼び出されない場合、コントローラから何かをレンダリングしようとするのは難しいと思います。 – Adas

+0

ajaxのsuccess関数が呼び出された場合は、「誰か」がそのリクエストに応答を返したことを意味します。よりよく見て、誰が応答しているかを確認してください(レスポンスの内容を見ることができるので、火か虫はここで助けてもらえます)。 rake routesやassert_generatesも役立ちます(http://guides.rubyonrails.org/routing.html#inspecting-and-testing-routesを参照)。ルートがweel設定されていることを確認してください。 –

関連する問題