从412 Precondition Failed,jQuery,$ .post显示错误

时间:2013-09-10 10:11:16

标签: jquery json post

在下面的代码中需要一些帮助,我的第一部分有效,但我不确定如何让.fail工作。

如果电子邮件错误,姓名或姓氏为空白,则会收到412 Precondition Failed with a response

  

{“email”:“电子邮件字段是必需的。”,“first_name”:“名字字段是必需的。”,“last_name”:“姓氏字段是必需的。”}

我需要在带有.errormessage类的div中的页面上显示消息,但我无法正常工作

 $('.bp_pop_holder').on('click', '#business_plus_form_add_submit', function() {
            $.post('/business_plus/add_customer_design/', $('.bp_pop_holder form').serialize(),
                    function(data) {
                        $('.bp_pop_holder tbody').empty();
                        $.each(data, function(key, value) {
                            var row = $('<tr />').data('customer_id', value.customer_id)
                                    .append($('<td />').addClass('current_email').text(value.email).width(170))
                                    .append($('<td />').addClass('current_name').text(value.first_name + ' ' + value.last_name).width(140))
                                    .append($('<td />').addClass('current_remove').html('<a href="javascript:void(0)" class="remove_person"></a>'));
                            $('.bp_pop_holder tbody').append(row);
                        })

                    }, 'json')
                    .fail(function() { 

                     alert("error"); 
                 });


             $('#business_plus_form_add').find("input[type=text], textarea").val("");
        });

感谢您的帮助。

我去了这就是结束

.fail(function(data) { 
                    var res = $.parseJSON(data.responseText);
                    $('.error_message').empty();
                    $.each(res, function (key,value) {
                        $('.error_message').append(value+"<br/>");
                        }
                    ); 
                });

1 个答案:

答案 0 :(得分:0)

根据jQuery docs,传递给.fail()方法的函数需要许多参数,其中第一个是“jQuery XMLHttpRequest对象”,它是“浏览器本机的超集” XMLHttpRequest对象“。您可以使用此对象查询HTTP请求的结果并获取所需的数据。例如:

.fail(function(jqXHR) {
    var responseCode = jqXHR.status;
    if(responseCode = 412) {
        var validationResult = $.parseJSON(jqXHR.responseText);

        // validationResult now contains:
        //   {
        //       "email" : "The Email field is required.",
        //       "first_name" : "The First name field is required.",
        //       "last_name" : "The Last name field is required."
        //   }

        if('email' in validationResult) {
            alert(validationResult.email);
        }
    }
});