处理 Ajax "done"和"fail"时出错



我遇到了一个奇怪的问题...

预期行为为:如果请求成功,页面将显示一个简单的警报(只是为了测试它是否正常工作(。如果失败,它应该在div 中显示错误消息。

$(function() {
$('.error').hide(); 
$("#form").on('submit', function(e) {
e.preventDefault();
$.ajaxSetup({
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')  
}
});
$.ajax({
type: 'POST',
data: $(this).serialize(),
url: '{{ route("admin.categories.store") }}'
})
.done(function(data) {
$('.error').hide();
alert(data.message.name); //simple alert just to check if it works
})
.fail(function(jqXHR) {
errorMessage = jqXHR.responseText;
$('.error').text(errorMessage . "<br>"); // not sure why this line is making the DONE part stop working.
$('.error').show();
}); 

});
});

如果我让它失败,它可以工作,但在成功的情况下,它只会返回给我原始 json:

{">

message":{"_token":"lkqlTHGPQBWEVIAQvO8pWs8ORAsSifGyR2TDBEPo","name":"test","submit":"Create 类别"}}

我注意到如果我删除$('.error').text(errorMessage . "<br>");部分,错误就会消失,"成功"场景就会起作用。

有什么想法吗?

替换

$('.error').text(errorMessage . "<br>");

$('.error').text(errorMessage + "<br>");

最新更新