0

コントローラーでは、AJAX 要求への応答は次のとおりです。

@response = {resp: "ack"}
render json: @response

AJAX を処理する JS は次のとおりです。

$('#some_btn').click(function() {    

    var valuesToSubmit = $('#some_form').serialize();
    var url = $('#some_form').attr('action');

    console.log("VALUE: " + valuesToSubmit);
    console.log("URL: " + search_url);

    $.ajax({
        type: 'POST',
        url: url, //sumbits it to the given url of the form
        data: valuesToSubmit,
        dataType: "JSON",
        success: function(data) {

            console.log("saved");
            console.log(data);

        }
    });

    return false;
});

しかし問題は、コンソール メッセージが表示されず、代わりにページがリロードされ、json が新しいページのテキストとして表示されることです。この「非真の AJAX」動作を防ぐにはどうすればよいですか?

4

3 に答える 3

0

デフォルトのフォーム送信アクションを防止する必要がありますか?

$('#some_btn').click(function(event) {  
  event.preventDefault();

  //...
});
于 2013-09-24T14:29:52.340 に答える