【问题标题】:Display error from 412 Precondition Failed, jQuery, $.post显示来自 412 Precondition Failed, jQuery, $.post 的错误
【发布时间】:2013-09-13 23:55:48
【问题描述】:

下面的代码需要一些帮助,我已经完成了第一部分,但我不确定如何让 .fail 工作。

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

{"email":"Email 字段是必需的。","first_name":"First name 字段是必需的。","last_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/>");
                        }
                    ); 
                });

【问题讨论】:

    标签: jquery json post


    【解决方案1】:

    根据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);
            }
        }
    });
    

    【讨论】:

    • 谢谢你。我对此很陌生。解析字符串会不会像 alert (validationResult.emai);
    • jqXHR.responseText 获得的字符串是 JSON 格式的原始字符串。要将其转换为 JavaScript 对象,请使用 $.parseJSON。然后您可以直接访问对象的属性。我已经更新了我的帖子以展示如何做到这一点。
    猜你喜欢
    • 1970-01-01
    • 2019-11-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-20
    • 1970-01-01
    • 2017-09-12
    • 2015-06-02
    相关资源
    最近更新 更多