javascript - AJAX 会触发成功和错误

标签 javascript jquery ajax

我不确定为什么我的 ajax 请求的 error: 部分也会被触发。成功和错误部分实际上都会触发。我对 JS/jQuery 很陌生,但我读到,当 ajax 请求成功时,会触发成功,而当出现错误时,会触发错误。我假设成功意味着 200,错误意味着 400-500?

js:

    function create_post() {
        console.log("create post is working");
        var firstName = document.getElementById("firstname");
        var lastName = document.getElementById("lastname");
        var email = document.getElementById("email");
        var phoneNumber = document.getElementById("phonenumber");
        var message = document.getElementById("message");
        var contactInfo = {
            "first_name": firstName.value,
            "last_name": lastName.value,
            "email": email.value,
            "phone_number": phoneNumber.value,
            "message": message.value
        };

        $.ajax({
            url: "",
            type: "POST",
            data: contactInfo,
            success: ajaxSuccess(contactInfo),
            error: console.log("ajax fail")

        });
    };


    function ajaxSuccess(contactInfo) {
        console.log(contactInfo);
        // clear form data
        document.getElementById("contact-form").reset();
        // display modal
    }


//    Contact form submit
    var contactForm = document.getElementById("contact-form");
    $(contactForm).on('submit', function(event) {
        event.preventDefault();
        console.log("form submitted");
        create_post();
    });

enter image description here

最佳答案

您的问题在于以下几行:

success: ajaxSuccess(contactInfo),
error: console.log("ajax fail")

这会立即有效地运行这两个函数,并将这些函数的返回值设置为 successerror 属性。尝试使用匿名回调函数。

success: function() {
    ajaxSuccess(contactInfo);
},
error: function() {
    console.log("ajax fail");
}

关于javascript - AJAX 会触发成功和错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28413772/

相关文章:

javascript - xmlhttp 请求后未定义 $_POST

javascript - 为 Quill 调用 setContents 可以工作,但随后会导致错误

javascript - AngularJS - 单击时隐藏父 div,然后显示下一个 div

Javascript框架流行度

php - Symfony 3.2 FOSUserBundle Ajax 登录

jQuery 等待 AJAX 页面完全加载

javascript - 将根域重定向到子域的影响

javascript - 使用 filter() 的正确方法是什么?

Jquery slider 名称

javascript - 动画完成后如何停止velocity.js动画?