@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>

что делаю не так?
  • Вопрос задан
  • 517 просмотров
Пригласить эксперта
Ответы на вопрос 3
Ну что написал то и получил !
А по делу не хватает условие по которому будет выводится Json.
Прочтите основы на php.net
Ответ написан
Комментировать
@BorisKorobkov Куратор тега PHP
Web developer
Ну и я как бы ожидаю, что в консоль придет только массив, потому что ему вызван json_encode

Ну тогда и надо только json_encode. А выводите еще и кучу всего далее.

Надо либо двумя отдельными php-файлами (один для вывода js, другой для вывода json), либо разруливать if в одном.

P.S. А вообще постоянно долбиться на сервер - плохая идея. Используйте веб-сокеты.
Ответ написан
Комментировать
@myphpscript
if(isset($_SERVER['HTTP_X_REQUESTED_WITH']) && $_SERVER['HTTP_X_REQUESTED_WITH']==='XMLHttpRequest') {
      
      echo json_encode($arr);
      exit;
}
Ответ написан
Ваш ответ на вопрос

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

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