我的页面上有以下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上测试了此页面。全部冻结。
这是服务器配置问题,如果是,我应该查找或更改什么?