В контроллере ответ на запрос AJAX заключается в следующем:Rails AJAX (JSON) ответ перезагружает страницу
@response = {resp: "ack"}
render json: @response
JS, который обрабатывает AJAX является:
$('#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»?
Попробуйте использовать dataType: "json" вместо "JSON" – techvineet
Действительно ли вы вызываете запрос ajax? – apneadiving
Вы, по крайней мере, получаете первые два консольных сообщения перед вызовом $ .ajax? Основываясь на вашем журнале rails, идет ли контроллер и действия, которые вы ожидаете? Вы проверили заголовки запроса и ответа с помощью чего-то вроде Firebug и сравнили их с заголовками, используемыми при работе с запросами AJAX? – sockmonk