广告中的真相:这是我正在努力解决的家庭作业。
我在桌面上运行XAMPP。我使用AJAX帖子通过jQuery验证插件将表单数据发送到PHP页面。这是JS:
var $infoForm = $('#infoForm');
$infoForm.validate({
submitHandler: function() {
var formValues = getFormValues();
$.post("/Week5/process.php", formValues, postResponse, "text");
}
});
function postResponse(response) {
$infoForm.fadeOut("slow", function() {
console.log(response);
$('#postResponse').empty().append('<p>' + (response.message ? response.message : 'The server is silent') + '</p>').slideDown("slow");
});
}
这里的process.php:
<?php
header("Content-type: application/json");
$message = array('message'=>'Thank you for your submission');
echo json_encode($message);
?>
这是response
在控制台中的样子:
<br />
<b>Warning</b>: Unknown: failed to open stream: No such file or directory in <b>Unknown</b> on line <b>0</b><br />
<br />
<b>Fatal error</b>: Unknown: Failed opening required 'D:/User Data/johnr/OneDrive/Education/ICT 4510/htdocs/Week5/process.php' (include_path='C:\xampp\php\PEAR') in <b>Unknown</b> on line <b>0</b><br />
我在Apache错误日志中收到相同的消息(没有HTML标记)。我不认为我有路径错误,因为当我更改$.post()
中的来自&#39; process.php&#39;类似于&#39; foo.php&#39;我得到了404 Not Found,就像我期望的那样。看起来服务器正在查找process.php,但后来找不到它呈现的响应。我不认为验证插件是问题,因为我通过直接处理表单的提交事件来尝试它,结果没有改变:
$infoForm.submit(function(event) {
event.preventDefault();
var formValues = getFormValues();
$.post("/Week5/process.php", formValues, postResponse);
});
最后一个数据点:我实际上得到了两个与process.php相关的请求/响应事件。第一个是具有正确请求有效负载的POST和作为响应有效负载的错误。第二个是没有请求或响应有效负载的GET。