Как получить ошибку 406 (неприемлемо) в jquery

Я выполняю обработку ошибок в my.js, где у меня есть перекрестный вызов домена на другой сервер, также для динамического HTML-шаблона я использую Mustache.js.

$.getJSON(url, function(data, textStatus, xhr) {
  $.each(data, function(i, data) {
    introPage(data);
  });
}).fail(function(Error) {
        alert(Error.status);
}); 

function introPage(data )
{
    $.getJSON('myphp.php?jsoncallback=?&template='+testTemplate, function(msg) {
        // my operations

    }).error(function(data) {
            }); 
}

У нас есть .fail() в getJSON, чтобы уловить ошибки в getJSON. Я могу уловить ошибку 404 (не найден), но когда дело доходит до ошибки 406 (недопустимый или недействительный ввод) или ошибка 401 (несанкционированный доступ),.fail(), похоже, не работает

но выдает ошибку в консоли JSON ERROR IN CONSOLE

Также, когда я нажимаю ссылку. он показывает ошибку в обратном вызове jquery в следующем формате

jQuery191014790988666936755_1378113963780({
  "error": {
    "code": 406,
    "message": "Not Acceptable: Sorry, There are no results to display for the given input."
  }
});

Теперь мне интересно, как получить эту ошибку в моем JS. я не получаю код ошибки 406 и 401. Мне нужен этот код ошибки, чтобы отображалась соответствующая страница ошибки.

Спасибо

Ответ 1

Судя по параметру jsoncallback=? и ответом jQuery191...780({...}), похоже, что jQuery генерирует запрос JSONP. Запросы JSONP не подпадают под одни и те же ограничения политики происхождения, но они имеют следующее ограничение как описано здесь:

Примечание. Этот обработчик [error] не вызывается для междоменного script и междоменные запросы JSONP.

Решение: