我正在尝试使用AJAX来填充我的下拉列表,并且我从我的控制器返回404错误消息,并且Ajax没有捕获它......
我在控制器的回复是
return Response()->json(array('error' => '404 car type not found'), 404);
这是我的JS
$('document').ready(function () {
$('#car_type').bind('changed.bs.select', function () {
$.ajax({
type: 'POST',
url:'carclass/'+$('#car_type').val(),
dataType: 'json',
error: function(XMLHttpRequest, textStatus, errorThrown){
alert('status:' + XMLHttpRequest.status + ', status text: ' + XMLHttpRequest.statusText);
},
success: function( json ) {
$.each(json, function(i, obj){
$('#car_class').append($('<option>').text(obj.name).attr('value', obj.id));
});
$('#car_class').selectpicker('refresh');
}
});
});
});
它正在返回
GET http://localhost:8000/ads/cartype/2 404 (Not Found)
答案 0 :(得分:0)
将error
块替换为类似的内容,xhr.status
将为您提供响应的状态代码。
error:function (xhr, ajaxOptions, thrownError){
if(xhr.status==404) {
alert('status:' + xhr.status + ', status text: ' + xhr.statusText);
}
}
答案 1 :(得分:0)
请改用fail()
。您还可以使用done()
回调,这是success
的替代。
$.ajax( "example.php" )
.done(function(data) {
$.each(data.responseJSON, function(i, obj) {
$('#car_class').append($('<option>').text(obj.name).attr('value', obj.id));
});
$('#car_class').selectpicker('refresh');
})
.fail(function(data) {
alert('status:' + this.status + ', status text: ' + this.statusText);
})
.always(function() {
alert( "complete" );
});