JQuery返回函数错误捕获

时间:2015-07-02 05:34:48

标签: jquery ajax laravel-5

我提交表格用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”:[“名称字段是必需的。”],“fname”:[“fname字段是必需的。”]},如果我把它写成:

error: function(errors){

               console.log(errors);
 }

然后屏幕输出为http://prntscr.com/7nt9tv。如何删除异常错误:422(不可处理的实体)并且只获得带有循环的responseText?

1 个答案:

答案 0 :(得分: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();
        }
    }
});