发送回好的JSON响应时,PHP处理页面404'

时间:2015-11-12 15:11:15

标签: php jquery json ajax

有一个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的。所以我猜这有什么问题吗?

任何帮助。

1 个答案:

答案 0 :(得分:0)

已排序,输入字段的名称为“name”。

更改有效,与同事交谈时,似乎WordPress有一组为其查询保留的字段名称。在这种情况下,它看到了字段名称并将请求发送到另一个不存在的页面。

我确信一个对WP有更多了解的人可以更好地解释,但是现在如果有人遇到这个问题,请确保检查输入名称。