我不明白为什么我在这个简单的基于AJAX的表格POST到PHP上得到500错误....介意看看?这可能是一件简单的事情,我只是没有抓住,但我现在正在摸不着头脑。
JS:
$form.submit(function(e) {
e.preventDefault();
var formData = $form.serialize();
$.ajax({
url: $form.attr('action'),
type: 'POST',
data: formData
}).done(function(res) {
console.dir(res);
alert('success!'); // update status text
$form[0].reset(); // reset the form
$form.find('input[type="submit"]').attr('disabled', 'disabled');
}).fail(function(data) {
alert('error');
});
});
PHP:
if($_SERVER["REQUEST_METHOD"] == "POST") {
if( !empty($_POST['captcha']) ) {
processForm( $_POST['formName'] );
} else {
http_response_code(401);
echo "Unauthorized.";
}
} else {
// not valid. ignore
http_response_code(400);
echo "Bad Request.";
}
PHP:processForm():
function processForm(string $type) {
if ($type == 'contact') {
http_response_code(200);
echo "contact form";
}
if ($type == 'appointmentRequest') {
http_response_code(200);
echo "appointment form";
}
// send the email
// return confirmation / failure
// die
}
我刚收到500错误。我确信请求指向正确的位置。
答案 0 :(得分:3)
抱歉,您可以阅读PHP 5 documentation:
类型提示只能是
object
和array
(自PHP 5.1以来)类型。 1}}和int
的传统类型提示不受支持。
由于string不是类,因此不能在函数中“键入”它,因此会出错。
您可以使用filter_input
等其他方法检查字符串是否为字符串