调试AJAX到PHP调用的最佳方法是什么?

How*_*opa 11 javascript php ajax

我在我的新项目上调试一个小函数时遇到了一个悲惨的时间.

基本上我有一个用户通过AJAX调用注册我的服务器上的注销脚本名为"userfFunctions.php"我正在使用AJAX,所以我没有头脑写更多正则表达式来匹配我的mod_rewrites.无论如何,每隔一段时间,似乎我的Post数据就会消失,而且由于PHP在幕后运行,我觉得我无法找到数据流被中断的地方.BTW此功能在当天19小时工作.

这是javascript函数:

function logOut(){
    var data = new Object;
    data.log_out = true;
    $.ajax({
        type: 'POST',
        url: 'http://www.mydomain.com/User_Validator', //<-- redirects to userFunctions.php
        data: data,
        success: function(data) {
        alert(data); // <-- a response is triggered but with no response data!
        }
    });
}
Run Code Online (Sandbox Code Playgroud)

php方面:

if(isset($_POST['log_out'])){
     echo 'alert this!';
}
Run Code Online (Sandbox Code Playgroud)

这是我非常棒的回复: alt text http://img517.imageshack.us/img517/6520/screenshot20100517at443.png

Ali*_*xel 9

FirePHP:

FirePHP使您可以使用简单的PHP方法调用登录Firebug控制台.

所有数据都通过响应标头发送,不会干扰您网页上的内容.

FirePHP非常适合需要干净的JSON和XML响应的AJAX开发.

这是我写的简约实现:

function FirePHP($message, $label = null, $type = 'LOG')
{
    static $i = 0;

    if (headers_sent() === false)
    {
        $type = (in_array($type, array('LOG', 'INFO', 'WARN', 'ERROR')) === false) ? 'LOG' : $type;

        if (($_SERVER['HTTP_HOST'] == 'localhost') && (strpos($_SERVER['HTTP_USER_AGENT'], 'FirePHP') !== false))
        {
            $message = json_encode(array(array('Type' => $type, 'Label' => $label), $message));

            if ($i == 0)
            {
                header('X-Wf-Protocol-1: http://meta.wildfirehq.org/Protocol/JsonStream/0.2');
                header('X-Wf-1-Plugin-1: http://meta.firephp.org/Wildfire/Plugin/FirePHP/Library-FirePHPCore/0.3');
                header('X-Wf-1-Structure-1: http://meta.firephp.org/Wildfire/Structure/FirePHP/FirebugConsole/0.1');
            }

            header('X-Wf-1-1-1-' . ++$i . ': ' . strlen($message) . '|' . $message . '|');
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

我编写它以便它只适用于localhost(出于安全原因),但您可以通过替换以下代码轻松地更改它:

if (($_SERVER['HTTP_HOST'] == 'localhost') && (strpos($_SERVER['HTTP_USER_AGENT'], 'FirePHP') !== false))
Run Code Online (Sandbox Code Playgroud)

附:

if (strpos($_SERVER['HTTP_USER_AGENT'], 'FirePHP') !== false)
Run Code Online (Sandbox Code Playgroud)


Amb*_*ber 8

尝试使用类似Firefox的FireBug插件或Chrome中的开发者工具来查看发送的请求.

  • 除了firePHP之外,你可以在同一个firebug窗口中调试php代码 (3认同)