【问题标题】:JQuery return function error catchJQuery返回函数错误捕获
【发布时间】:2015-07-02 13:40:50
【问题描述】:

我正在提交表单以使用 php 调用 $.ajax()。这是我的 $.ajax 函数,它在成功时可以完美运行。当我想显示错误时,循环所有 responseText 会有些麻烦。查看我的 $.ajax() 代码:

$.ajax({
// ... ,
error: function(errors){
          $.each(errors, function(index, error){
                info.hide().find('ul').append('<li>'+error+'</li>');
          });
                info.slideDown();
     }
});

我发现了所有错误,但很困惑,如何仅呈现错误,请参阅屏幕http://prntscr.com/7nt3lq 中的输出。 我只想渲染这些错误字段:{"name":["The name field is required."],"fname":["The fname field is required."]},如果我把它写成:

error: function(errors){

               console.log(errors);
 }

那么屏幕中的输出是http://prntscr.com/7nt9tv。如何消除异常错误:422(无法处理的实体)并仅通过循环获取 responseText?

【问题讨论】:

    标签: jquery ajax laravel-5


    【解决方案1】:

    问题是error 回调的第一个参数不是respose 数据,而是jqXHR 对象。

    $.ajax({
        url: '/echo/asdf',
        // ... ,
        error: function (jqxhr) {
            if (jqxhr.status = 422) {
                var errors = JSON.parse(jqxhr.responseText);
                $.each(errors, function (index, error) {
                    info.hide().find('ul').append('<li>' + error + '</li>');
                });
                info.slideDown();
            }
        }
    });
    

    【讨论】:

    • 感谢 Arun P Johny 的回复。现在它正在工作,请查看我的屏幕prntscr.com/7ntqi9。在屏幕上我不想(警告)消息输出和控制台显示错误,如何控制它们。再次感谢回复:)
    • @saeedahmed 我不认为这段代码显示了警报....控制台错误我们不能做太多,因为浏览器正在记录它
    • 但是为什么它呈现(警报)消息仍然存在混淆。您可以在顶部的所有共享屏幕中看到它。
    • 尝试在$.each(errors..)之前添加info.hide().find('ul').empty()
    • 说得对!现在工作正常。 :) 由于浏览器正在记录控制台错误,我们无能为力,这是什么意思? @Arun P Johny
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-08
    • 1970-01-01
    • 2018-08-09
    相关资源
    最近更新 更多