有一个sendmail.php页面,我在WordPress网站上通过ajax调用。
这是它的外观基础:
if ($_POST) {
foreach($_POST as $field => $val) {
if ($val == '') {
$jsonReturn = ['success' => false, 'message' => 'Validation errors whilst processing your form, please go back and check.'];
echo json_encode($jsonReturn);
die();
}
}
if ($noErrors) { // set elsewhere, but works okay
/*
Send an email
*/
if ($mail->send()){
$jsonReturn = ['success' => true, 'message' => "Thank you, message sent."];
echo json_encode($jsonReturn);
}
}
} else {
header("Location: /");
die();
}
如果页面顶部的'验证'失败,我会收到200页回复,其中包含JSON成功返回false。
但是,如果我通过验证并发送电子邮件,那么json将返回404页面。
我还测试了:
$jsonReturn = ['success' => true, 'message' => "Thank you, message sent."];
echo json_encode($jsonReturn);
直接在第一个foreach下,它也是404的。所以我猜这有什么问题吗?
任何帮助。
答案 0 :(得分:0)
已排序,输入字段的名称为“name”。
更改有效,与同事交谈时,似乎WordPress有一组为其查询保留的字段名称。在这种情况下,它看到了字段名称并将请求发送到另一个不存在的页面。
我确信一个对WP有更多了解的人可以更好地解释,但是现在如果有人遇到这个问题,请确保检查输入名称。