Задать вопрос
@driverx18

Почему вместо JSON возвращается весь код страницы?

Мне нужно отсылать каждые 5 сек запрос с помощью AJAX, и проверять есть ли новая запись, собственно я вот сделал тестовый скрипт:
<?php
$arr = ['ok' => 'good', 'th' => 'tht', 'n' => '3'];

json_encode($arr);
echo 'test';
?>


<script>
$(document).ready(function() {
	setInterval(function() {
	$.ajax({
		type: "GET",
		url: 'index.php',
		success: function(res) {
			console.log(res);
		}
	});
}, 5000);
});
</script>

Ну и я как бы ожидаю, что в консоль придет только массив, потому что ему вызван json_encode. Однако приходит в консоль следующее (по сути всё, что не надо):
tessst

<script
  src="https://code.jquery.com/jquery-3.2.1.js"
  integrity="sha256-DZAnKJ/6XZ9si04Hgrsxu/8s717jcIzLy3oi35EouyE="
  crossorigin="anonymous"></script>
<script>
$(document).ready(function() {
	setInterval(function() {
	$.ajax({
		type: "GET",
		url: 'index.php',
		success: function(res) {
			console.log(res);
		}
	});
}, 5000);
});
</script>

что делаю не так?
  • Вопрос задан
  • 523 просмотра
Подписаться 2 Оценить Комментировать
Ответ пользователя Денис А. К ответам на вопрос (3)
@myphpscript
if(isset($_SERVER['HTTP_X_REQUESTED_WITH']) && $_SERVER['HTTP_X_REQUESTED_WITH']==='XMLHttpRequest') {
      
      echo json_encode($arr);
      exit;
}
Ответ написан