php - 当某些功能不起作用时处理 jQuery.ajax() 中的错误

标签 php jquery ajax

我有一个 php 文件,其中包含使用 jQuery.ajax() 发送的表单。如果电子邮件未发送且错误消息未显示,我遇到的问题是。

$(document).ready(function () {
    $('input[type="submit"]').click(function () {
        $.ajax({
            url: "mail.php",
            type: "POST",
            data: {
                name: $('input[name="name"]').val(),
                email: $('input[name="email"]').val(),
                msg: $('input[name="msg"]').val()
            },
            cache: false,
            success: function(responseText) {
                $('#result').css('background', 'green');
            },
            error: function(responseText) {
                $('#result').css('background', 'red');
            }
        });
        return false;
    });
});

由于电子邮件未发送,因此错误不会显示任何内容,但会显示成功。因此,我将 mail.php 代码更改为其他代码。

<?php
    if(2 > 4) {
        true;
    } else {
        false;
    }
?>

当我按下按钮时,成功操作仍然有效,但我不知道为什么。

最佳答案

仅当 ajax 调用失败时才会触发错误回调,如果 PHP 邮件函数失败则不会触发,如果返回 false,则不会触发,因为您从服务器收到了返回的内容(字符串“false”) .

要捕获此类错误,您可以从 PHP 触发错误,也可以在成功处理程序中捕获它:

success: function(data) {
    if (!data || $.trim(data) == 'false') {
        $('#result').css('background', 'red');
    }else{
        $('#result').css('background', 'green');
    }
},

和 PHP

<?php
    echo 2>4 ? 'true' : 'false';
?>

关于php - 当某些功能不起作用时处理 jQuery.ajax() 中的错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16938294/

相关文章:

javascript - 显示 map ,同时通过 ajax/php 从数据库检索坐标

asp.net - 我可以延迟 window.open() 吗?

jQuery 自动建议插件不显示结果

javascript - 在 jQuery 上更改复选框状态时遇到问题

Ubuntu 上的 PHP Ping

javascript - Laravel 未定义

jquery - 移动选中的 jQuery 上的复选框

javascript - 使用 javascript/AJAX 将数据插入 MySQL 数据库

php - 如何阻止我的 PHP 使用 PHP 通知向 error.log 发送垃圾邮件?

php - 识别相似图像的好方法?