2011-12-30 12 views
10

私は、次のコードは、元のページの<div id='job-status'></div>間の「こんにちはお母さん」を表示することを期待するが、それはしていません:jQuery.get()コールバックが呼び出されないのはなぜですか?

$(function() { 
    function show_status() { 
     $.get("<%= status_jobs_path -%>", 
       function(data) { 
        $('#job-status').html('hi mom'); 
       }, 'json'); 
    } 
    show_status(); 
}); 

のget()関数がトリガされている:私は、要求が私に到着見ますJSONコードを含む200 OKレスポンス。しかし、function(data) { ... }体内のアラート()は呼び出されず、ページには「お母さん」も表示されません。私がダウンしたコードを取り除く場合は、:

$(function() { 
    function show_status() { 
     $('#job-status').html('hi mom'); 
    } 
    show_status(); 
}); 

...それは<div id='job-status'></div>内の表示「こんにちはお母さん」を行います。

IASISO(I Am Sure It Something Obvious)、何が欠けていますか?

+0

firebug/chrome開発ツールで成功した結果を確認できますか? –

+1

応答は有効なJSONですか?解析が失敗した場合でも、jQueryは 'error'コールバックにリダイレクトされます(' $ .get'の場合は '' deferred.fail''(http://api.jquery.com/deferred.fail/))。 –

+1

ええ、私は頭字語をキャッチして表示されません。あなたの質問に関しては、返されるJSONオブジェクトが有効で適切に構造化されていることを確認してください。また、これは同じドメインリクエストかクロスドメインですか? – Aaron

答えて

11

私の推測では、無効なjson応答が返されます。これをコントローラのアクションに入れてみてください

render :json => { :message => "Hi mom" }, :status => :ok 
+1

うん、そうだった。私はちょうどJSONが要素リスト(Rubyが私を台無しにした)で後続のコンマを受け入れないこと、そしてjQuery.get()が誤ってJSONを作成して失敗することを知りました。ありがとう。 –

関連する問題