编程语言
首页 > 编程语言> > 用于Visual Studio的PHP工具.如何调试AJAX请求?

用于Visual Studio的PHP工具.如何调试AJAX请求?

作者:互联网

我有一个关于PHP的小项目,我想使用Visual Studio的PHP工具对其进行调试.它运行良好,调试器运行良好.但是我的项目中有一部分可以作为服务,它侦听来自html页面的AJAX请求并以JSON格式发送响应.在这种情况下,调试器根本无法工作.我在我的php服务文件中设置了断点,但它从未触发,但是我在客户端得到了正确的响应.因此,我的问题是如何使用PHP工具调试AJAX请求?

我以客户机和服务器代码为例,来说明我的问题.

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>

因此,当我在if.statement的行中在server.php中设置断点时,它不会触发,但是客户端成功接收到服务器响应.

解决方法:

我在DEVSENSE forum上找到了解决方案
在这种情况下,xdebug只是不知道何时开始调试.简便的方法是将php.ini添加到下一行:

xdebug.remote_autostart = on

和所有的作品!

标签:ajax,debugging,visual-studio-2012,php
来源: https://codeday.me/bug/20191120/2045232.html