jQuery Ajax Uncaught TypeError: Cannot use 'in' operator to search
jQuery Ajax Uncaught TypeError: Cannot use 'in' operator to search
您好,我正在使用 laravel jQuery & ajax 来 return 一个 JSON 错误:
error: function (jqXhr, json, errorThrown) {
var errors = JSON.stringify(jqXhr.responseJSON);
var errorsHtml= '';
$.each( errors, function( key, value ) {
errorsHtml += '<li>' + value[0] + '</li>';
});
toastr.error( errorsHtml , "Error " + jqXhr.status +': '+ errorThrown);
}
但是我收到以下错误:
Uncaught TypeError: Cannot use 'in' operator to search for '209' in {"errors"{"name":["A name is required"],"hours":["Please input a capacity in hours."],"start_date":["Please input a start date."],"end_date":["Please input an end date."]}}
任何想法,如果我使用 .parse
而不是 .stringify
我会收到以下错误:
Uncaught SyntaxError: Unexpected token j
.
知道我哪里做错了吗?
提前致谢。
编辑
var errors = JSON.stringify(jqXhr.responseJSON);
console.log('normal'+jqXhr.responseJSON);
console.log('stringify: '+errors);
normal[object Object]
stringify: {"errors":{"name":["A name is required"],"hours":["Please input a capacity in hours."],"start_date":["Please input a start date."],"end_date":["Please input an end date."]}}
你应该使用:
error: function(jqXhr, textStatus, errorThrown) {
var errorsHtml = '';
$.each(jqXhr.responseJSON.errors, function(key, value) {
errorsHtml += '<li>' + value[0] + '</li>';
});
toastr.error(errorsHtml, "Error " + jqXhr.status +': '+ errorThrown);
}
jqXhr.responseJSON
是已经解析为对象的响应。您在编辑中显示的 JSON 将是一个包含一个名为 "errors" 的 属性 的对象。您想遍历 属性.
的 key/values
您好,我正在使用 laravel jQuery & ajax 来 return 一个 JSON 错误:
error: function (jqXhr, json, errorThrown) {
var errors = JSON.stringify(jqXhr.responseJSON);
var errorsHtml= '';
$.each( errors, function( key, value ) {
errorsHtml += '<li>' + value[0] + '</li>';
});
toastr.error( errorsHtml , "Error " + jqXhr.status +': '+ errorThrown);
}
但是我收到以下错误:
Uncaught TypeError: Cannot use 'in' operator to search for '209' in {"errors"{"name":["A name is required"],"hours":["Please input a capacity in hours."],"start_date":["Please input a start date."],"end_date":["Please input an end date."]}}
任何想法,如果我使用 .parse
而不是 .stringify
我会收到以下错误:
Uncaught SyntaxError: Unexpected token j
.
知道我哪里做错了吗?
提前致谢。
编辑
var errors = JSON.stringify(jqXhr.responseJSON);
console.log('normal'+jqXhr.responseJSON);
console.log('stringify: '+errors);
normal[object Object]
stringify: {"errors":{"name":["A name is required"],"hours":["Please input a capacity in hours."],"start_date":["Please input a start date."],"end_date":["Please input an end date."]}}
你应该使用:
error: function(jqXhr, textStatus, errorThrown) {
var errorsHtml = '';
$.each(jqXhr.responseJSON.errors, function(key, value) {
errorsHtml += '<li>' + value[0] + '</li>';
});
toastr.error(errorsHtml, "Error " + jqXhr.status +': '+ errorThrown);
}
jqXhr.responseJSON
是已经解析为对象的响应。您在编辑中显示的 JSON 将是一个包含一个名为 "errors" 的 属性 的对象。您想遍历 属性.