Почему $ .getJSON бесшумно терпит неудачу?

Кажется очень неудобным, что $.getJSON jQuery бесшумно терпит неудачу, когда возвращаемые данные недействительны JSON. Почему это было реализовано с бесшумной неудачей? Каков самый простой способ выполнить getJSON с улучшенным поведением (например, console.log() исключение, console.log() или что-то еще)?

    вы можете использовать

      function name() { $.getJSON("", function(d) { alert("success"); }).done(function(d) { alert("done"); }).fail(function(d) { alert("error"); }).always(function(d) { alert("complete"); }); } 

    Если вы хотите увидеть причину ошибки, используйте полную версию

     function name() { $.getJSON("", function(d) { alert("success"); }).fail( function(d, textStatus, error) { console.error("getJSON failed, status: " + textStatus + ", error: "+error) }); } 

    Если ваш JSON плохо сформирован, вы увидите что-то вроде

     getJSON failed, status: parsererror, error: SyntaxError: JSON Parse error: Unrecognized token '/' 

    Если URL-адрес неверен, вы увидите что-то вроде

     getJSON failed, status: error, error: Not Found 

    Если вы пытаетесь получить JSON из другого домена, нарушая политику одинакового происхождения , этот подход возвращает пустое сообщение. Обратите внимание, что вы можете работать с политикой одного и того же происхождения, используя JSONP (у которого есть свои ограничения ) или предпочтительный метод совместного использования ресурсов Cross-origin ( CORS ).

    Прямо из документации:

    Важно: Начиная с jQuery 1.4, если файл JSON содержит синтаксическую ошибку, запрос обычно терпит неудачу.

    Как говорится на странице документации, getJSON – это просто сокращенный метод для

     $.ajax({ url: url, dataType: 'json', data: data, success: callback }); 

    Чтобы получить отказ, вы можете использовать $ .ajax следующим образом:

     $.ajax({ url: url, dataType: 'json', data: data, success: callback, error: another callback }); 

    $.ajax этого вы можете использовать $.ajax и установить для параметров dataType значение «json». Из документации:

    «json»: оценивает ответ как JSON и возвращает объект JavaScript. В jQuery 1.4 данные JSON обрабатываются строгим образом; любой отклоненный JSON отклоняется и возникает ошибка синтаксического анализа . (См. Json.org для получения дополнительной информации о правильном форматировании JSON.)

    Вы должны взглянуть на документы для этого API … на нем есть .error.

    http://api.jquery.com/jQuery.getJSON/

    Если вы запрашиваете JSONP в качестве ответа, вы получите бесшумный отказ, если нет ответа (например, отключение сети). См. Эту тему .

    Interesting Posts

    Как добавить пользовательское состояние кнопки

    Остановить UIWebView от «подпрыгивания» по вертикали?

    Как я могу конвертировать адрес IPV6 в адрес IPV4?

    Поместите изображение водяного знака на другие изображения (C #, ASP.Net)

    Тест JUnit для System.out.println ()

    Использование библиотеки aar приводит к отсутствию зависимостей с помощью api в Gradle 4.x

    Кто устанавливает тип содержимого ответа в Spring MVC (@ResponseBody)

    Загрузка файлов с использованием метода GET

    Проблема при центрировании по вертикали с помощью flexbox, когда высоты неизвестны

    Запуск .exe-программ на Mac OSX

    Как я могу инициализировать переменные-члены объекта C ++ в конструкторе?

    Быстрый способ нахождения строк в одном файле, которые не находятся в другом?

    pthread: одна команда printf дважды печатается в дочерней цепочке

    Удалите раздел OSX и добавьте остаток в раздел Windows 7

    Взлом для запуска нескольких iMacros случайным образом

    Давайте будем гением компьютера.