Cer*_*dan 4 php debugging ajax visual-studio-2012
我有一个关于 PHP 的小项目,我想用 Visual Studio 的 PHP 工具调试它。它运行良好,调试器运行良好。但是我的项目的一部分作为服务工作,它侦听来自 html 页面的 AJAX 请求并以 JSON 格式发送响应。在这种情况下,调试器根本不起作用。我在我的 php 服务文件中设置了断点,它从不触发,但我在客户端得到了正确的响应。所以,我的问题是如何使用 PHP Tools 调试 AJAX 请求?
我以我的客户端和服务器代码为例来说明我的问题。
服务器.php
<?php
if(isset($_REQUEST['response'])) {
echo json_encode('ok');
}
else {
echo json_encode('cancel');
}
?>
Run Code Online (Sandbox Code Playgroud)
客户端.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>
Run Code Online (Sandbox Code Playgroud)
因此,当我在带有 if 语句的行上的 server.php 中设置断点时,它不会触发,但客户端成功接收服务器响应。
我在DEVSENSE 论坛上找到了解决方案 在这种情况下 xdebug 只是不知道它应该何时开始调试。最简单的方法是添加到 php.ini 的下一行:
xdebug.remote_autostart = on
Run Code Online (Sandbox Code Playgroud)
和所有的作品!
| 归档时间: |
|
| 查看次数: |
1477 次 |
| 最近记录: |