jquery getJSON не может зафиксировать событие ошибки при статусе ответа 500

#jquery #getjson

#jquery #getjson

Вопрос:

Когда я обращаюсь к серверу с помощью getJSON, для меня отвечает статус 500, но событие сбоя не вызывается. вот почему? пожалуйста, помогите мне. Спасибо.

 var action = 'http://ship.mangocity.com/ship-calendar.shtml?callBack=?';  

$.getJSON(action, {startDate: "2016-06"})
.done(function(data){
    alert(456)
})
.fail(function(){
    alert(234)

})
.always(function() {
    alert(123)
});
  

Демонстрация jsfiddle

Ответ №1:

Вы не отправляете данные как объект json, http://jsfiddle.net/6jCHt/1 /

используйте get();

 $.get(action, {startDate: "2016-06"})
.done(function(data){
    alert(456)
})
.fail(function(){
    alert(234)

})
.always(function() {
    alert(123)
});
  

Комментарии:

1. API — это JSONP для междоменного. В обычной ситуации сервер отвечает на объект json. но когда сервер отвечает на статус 500, я хочу зафиксировать ошибку.

2. тогда почему вы не используете jsonp

3. Если URL-адрес содержит строку «обратный вызов =?» (или аналогичную, как определено серверным API), запрос вместо этого обрабатывается как JSONP