Инструменты PHP для Visual Studio. Как отлаживать AJAX-запросы?

У меня небольшой проект на PHP, и я хочу отладить его с помощью PHP Tools for Visual Studio. Работает нормально, отладчик работает отлично. Но у меня есть часть моего проекта, которая работает как служба, она слушает запросы AJAX со страниц HTML и отправляет ответы в формате JSON. В этой ситуации отладчик не работает вообще. Я установил точки останова в своем файле сервиса php, и он никогда не срабатывает, но я получаю правильный ответ на стороне клиента. Итак, мой вопрос как отлаживать запросы AJAX с помощью PHP Tools?

Я делаю пример своего клиентского и серверного кода, чтобы проиллюстрировать мою проблему.

server.php

<?php

if(isset($_REQUEST['response'])) {
echo json_encode('ok');
}
else {
echo json_encode('cancel');
}

?>

client.html

<!DOCTYPE HTML>
<html>
<head>
<title>AJAX test</title>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>

<script type="text/javascript">
$( document ).ready(function() {
$( "#request" ).bind( "click", function() {
var data = { response: "response" };

$.ajax({
url: "server.php",
type: "POST",
async: false,
timeout: 5000,
dataType: "json",
data: data,
success: function(result) {
$("#response").text(result);
},
error: function(error) {
$("#response").html(error.responseText);
}
});
});
});

</script>
</head>

<body>
<p>
<b>Request: </b> <span id="request"><a href="#">Send request</a></span>
</p>
<p>
<b>Response: </b> <span id="response">Here will be your response...</span>
</p>
</body>

</html>

Поэтому, когда я устанавливаю точку останова в server.php на строке с оператором if, он не срабатывает, но клиентская сторона успешно получает ответ сервера.

3

Решение

Я нашел решение на DEVSENSE форум
В этом случае xdebug просто не знает, когда он должен начать отладку. Проще всего добавить в php.ini следующую строку:

xdebug.remote_autostart = on

И все работает!

3

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]