2016-08-04 28 views
0

コントローラのcreateアクションにajax投稿リクエストを送信しようとしていますが、ajax success機能でjsonレスポンスの代わりにundefinedを取得しています。私は1ページのアプリケーションを構築しているので、jsonの応答が必要です。Rails ajax投稿応答が定義されていません

私はrender :json => {name: "jim"}.to_jsonを使用しています。これは正しい方法ですか、それとも私が行方不明になっているajaxリクエストに関する基本的なことがありますか?

ご協力いただければ幸いです。

クライアント側AjaxのPOSTリクエスト:レスポンスコントローラで

submit_click: -> 
    $.post "/responses", 
     type: "POST" 
     dataType: "json" 
     contentType: "application/json" 
     charset="utf-8" 
     response: 
     image_id: @image_name 
     data: @data_pool 
     success: (json) -> 
     console.log json 

処置:

def create 
    @response = Response.new(response_params) 
    if @response.save 
     count = count_completed_responses 
     if count < 20 
     render :json => {name: "jim"}.to_json 
     end 
    end 
    end 

編集:私はクロームデベロッパーコンソールのネットワークタブに通じてくる応答を見ることができます - {name: "jim"}なぜajax successコールバックでアクセスできないのですか?

第二編集:私は実際にこれが$post関数の後に次を使用して動作するようになった:これは動作し、他の方法がない理由

.done (data) 
    console.log data 

誰もが知っていますか? "POST" `:それはのような

submit_click: -> 
    $.post "/responses", 
    contentType: 'application/json; charset=utf-8' 
    dataType: 'json' 
    response: 
     image_id: @image_name 
     data: @data_pool 
    success: (json) -> 
     console.log json 

以下でなければならない

+0

それはあなたのために働くことを願っていません。メソッド自体はPOST要求を行います。 –

+0

'charset =" utf-8 "'も間違った構文です。私はあなたがどのようにサーバーに電話をかけることができるかわからない:) –

答えて

0

あなたは`タイプを使用する必要

+0

ありがとうが、残念ながらそれは動作しませんでした - コンソールログは未定義を出力 – RobotEyes

関連する問題