1

私はほとんどそこにいますが、この単純なアイテムをデバッグできないようです.

私は次のページを持っています:

<div id="count">

次の関数を使用して、サーバーからカウントを取得しています。

$.get("/count?post_id=" + postId, function(post_count) {
    $('#count').html(post_count.count);

サーバーからの応答は次のとおりです。

[{"count":0}]

ただし、ページは提供されたカウントで更新されません。以前は応答に単純なテキストをレンダリングさせていましたが、ページは期待どおりに新しいカウントで更新されていましたが、json を使用すると動作しません。

誰か手を貸してくれませんか?

編集1

私がする時

alert(post_count)

[オブジェクト][オブジェクト] の警告ダイアログが表示される

しかし、私がやろうとすると

alert(post_count.count)

Undefined との警告ダイアログが表示されます。

上記の JSON 形式は正しいですか?

4

2 に答える 2

2

応答が次の場合、[{"count":0}]次のようになります。

post_count.count

次のようにする必要があります。

post_count[0].count

オブジェクト/ハッシュを含む配列であるためです。

また、このような単純な呼び出しを超えたら、restful_jsonAngularJSなどの既存のフレームワークを使用して重い作業を行うことを検討してください。これら 2 つのプロジェクトを一緒に使用する例は、employee-training-trackerアプリです。この種の複雑さを隠している Javascript フレームワークは他にもあります。一部はTodoMVCページに例とともにリストされています。また、独自のサービス コントローラーを作成する場合は、rails-api の使用を検討してください。

于 2013-02-14T20:35:18.907 に答える
1

コンテンツだけでなくヘッダーでも、Rails アプリケーションが JSON で応答することを確認します。

試す:

respond_to do |format|
  format.json { render :json=> whatever.to_json }
end

編集:以前はこれを見逃していましたが、jQuery で JSON を呼び出して自動的に解析する場合 (JSON.parse(response) を使用する代わりに:

$.getJSON(url, function(){});
于 2013-02-14T20:18:12.623 に答える