jQuery POST到PHP挂起,导致页面无响应

时间:2011-08-07 19:04:13

标签: php jquery ajax

我的页面上有以下JavaScript:

$('#report_submit').click(function(event){
    event.preventDefault();
    if ( $('#email').val() == "" )
    {
        reportmessage('Please enter an e-mail address.');
        return false;
    }
    $.post('report.php',{method:reported,email:$('#email').val()},function(data){
        if (data == 'error')
        {
            reportmessage('Catastrophic failure. Please try again.');
        }
        if (data == 'email')
        {
            reportmessage('Check your e-mail address and try again.');
        }
        if (data == 'success')
        {
            $('#reportform').fadeOut();
            $('#reportsuccess').fadeIn();
            return true;
        }
    });
});

并报告.php:

<?php

if ($_SERVER['REQUEST_METHOD'] == 'POST')
{
    // Server side verification
    $method = trim(strip_tags(stripslashes($_POST['method'])));
    $email = trim(strip_tags(stripslashes($_POST['email'])));

    if (empty($method) OR empty($email))
    {
        echo 'error';
        exit;
    }

    if (filter_var($email, FILTER_VALIDATE_EMAIL) === false)
    {
        echo 'email';
        exit;
    }

    // Write it to the log
    $data = date('c').' - '.$_SERVER['REMOTE_ADDR'].' - '.$email.' - '.$method."\n";

    file_put_contents ( 'reports.txt', $data, FILE_APPEND );

    echo 'success';
    exit;
}

?>

单击提交按钮,并且电子邮件地址文本字段中有值时,页面几乎立即冻结。我必须关闭/终止进程并重新加载页面。 JavaScript控制台什么都没显示。我认为PHP脚本运行得很好;如果我用echo 'error';替换脚本页面有效,我会收到灾难性的错误消息。但是,将POST变量直接传递给脚本而不是通过AJAX会在浏览器中显示正确的输出。

它不能是一个PHP问题,并且JavaScript应该可以正常工作(并且,当PHP脚本返回一个简单的值而不做任何其他事情时)。我已经在Chrome和Firefox上的Mac上以及Firefox,Chrome和IE上的Windows上测试了此页面。全部冻结。

这是服务器配置问题,如果是,我应该查找或更改什么?

0 个答案:

没有答案