@maxprof
Студент

Почему data передает не массив а всю страницу?

Здравствуйте, есть такая часть такой кода:
$(".btn.btn-primary.place_block").click(
        function() {
            $arr = [];
            $link_id = $(location).attr('href').slice(36);
            $('.btn-warning').each(function() {
                $place_id = $(this).attr('id');
                $arr.push($place_id);
            });
            $.ajax({
                url: "/film_sessions/" + $link_id,
                type: "get",
                data: { data_value: $arr },
                // dataType: "html",
                complete: function() {},
                success: function(data) {
                    if ($('#data2').html() == '') {
                        $('#data2').append(data);
                    } else {
                        $('#data2').empty();
                        $('#data2').append(data);
                    }
                },
                error: function() {
                    alert("Ajax error!")
                }
            });
        });

Подскажите пожалуйста, почему ajax запрос возвращает не просто массив $arr, а целую страницу.
То есть в блоке #data2 выводится точная копия страницы, а не просто нужный мне массив, который я передаю в этой строчке data: { data_value: $arr }.
console.log(data) - Выводит в консоль html код страницы.
Если же запрашиваю массив напрямую -
success: function($arr) {
                    if ($('#data2').html() == '') {
                        $('#data2').append($arr);
                    } else {
                        $('#data2').empty();
                        $('#data2').append($arr);
                    }
                }

То точно так же выводится код целой страницы.
Стандартный вид страницы
b98a3e7eb718409e96642d88ea2dd2f7.png
Вид, когда выбрали несколько блоков(в момент выбора блока и срабатывает скрипт. Идет запись id выбранного блока в массив $arr)
13f6a03d4a684fd8a7a209767689e1bf.png
И вот так выглядит то, что возвращает скрипт в блок #data2 (Блок по умолчанию скрыт, использую fancybox)
b224e48a0b19444192a790964c23c948.png

На сервере я получаю этот массив и отправляю в переменную. Это видно на последнем скриншоте (вверху).
Update
На серверной части вот такая строчка принимает значение data_value:
@test_test = params[:data_value] || []
Вот код блока #data2
<div id="data2">
				<% if @test_test.present? %>
					<% @test_test.each do %>
						<h1>Hello</h1>
					<% end %>
				<% end %>
			</div>
  • Вопрос задан
  • 288 просмотров
Пригласить эксперта
Ответы на вопрос 1
@polar-bear
А если в конфигурации ajax выставить dataType: 'json' и с сервера вернуть ответ с Content-Type: application/json?
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы