我正在努力把我的错误信息"从日期开始必须在日期之前设置",通过控制器到ajax调用。错误消息需要在div中显示为警告。以下代码不起作用。
控制器:
$response_array['error'] = [trans('servicereports.errors.to_date')];
return json_encode($response_array);
结果:
{"错误":["必须在日期之前设置日期。"]}
的Ajax:
$.ajax({
type: 'POST',
url: '{{ route('einsight.servicereports.validateDates') }}',
cache: false,
data: $(this).serialize(),
error: function(msg, result) {
var data = jQuery.parseJSON(result);
$.each(data, function(index, value) {
$("#error-message").append( value );
});
}
});
显示消息的Div:
<div class="flash-message" id="error-message">
</div>
答案 0 :(得分:1)
你以错误的方式处理错误。在ajax ajax
方法中,只有在$.ajax({
type: 'POST',
url: '{{ route('einsight.servicereports.validateDates') }}',
cache: false,
data: $(this).serialize(),
success: function(result) {
var data = jQuery.parseJSON(result);
$.each(data, function(index, value) {
$("#error-message").append( value );
});
}
});
调用中出现错误时才会调用。直到你的代码成功执行,你必须在成功函数
<br>
答案 1 :(得分:1)
您可以使用$response_array['error'] = [trans('servicereports.errors.to_date')];
return response(400)->json($response_array);
返回带有正确标头的JSON:
error
因为您要发送状态代码400,所以您将触发$.ajax({
type: 'POST',
url: '{{ route('einsight.servicereports.validateDates') }}',
cache: false,
data: $(this).serialize(),
error: function(msg, response) {
$.each(response.error, function(index, value) {
$("#error-message").append( value );
});
}
});
功能。然后你也不需要解析它,因为它已知为json:
{{1}}