2017-07-27 18 views
-1

ajaxリクエストを使用してレール・コントローラー・アクションからの応答を取得するときに、奇妙な動作が発生しました。コントローラーへのAjaxリクエストのリダイレクト

$.ajax({ 
    type: 'GET', 
    url: '/notifications' 
}); 
def index 
    respond_to do |format| 
     format.html { redirect_to root_url, alert: 'Page not accessible' } 
     format.js 
    end 
end 

だからこれrespond_toブロックは、要求を使用する際にRailsのremote: trueオプションで正常に動作しますが、AJAXでちょうどroot_urlに要求をリダイレクトし、それを呼び出します。

ajaxリクエストはjsとは異なる形式ですか?


ajax呼び出しでdataType: 'text/javascript',と指定しても、このトリックは実行されません。

答えて

1

はあなたの最初の提案が要求をリダイレクトするために、サーバーをリードしていない

$.ajax({ 
     type: "GET", 
     dataType: "json", 
     url: "/notifications" 
    }); 

または

$.get('/notifications', function(data) { 
    //do something 
}); 
+0

をお試しください!それでもデータ型として 'json'を指定すると、返されるjavascriptは無効です(jsonとして)。成功コールバックでは実行できません。 – jonhue

関連する問題