【发布时间】:2015-11-12 15:11:15
【问题描述】:
在 WordPress 网站上有一个我通过 ajax 调用的 sendmail.php 页面。
这是它的基本外观:
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的。所以我猜这有什么问题?
任何帮助。
【问题讨论】:
-
“200 页后退”是什么意思?你的意思是一个页面,还是响应?
-
我调用的页面显示它的状态为 200。当表单验证通过时,我将下一部分代码称为 404