С jQuery 1.9 они изменили $ .parseJSON, чтобы вести себя так же, как JSON.parse. Наиболее заметным изменением, вызвавшим меня головными болями, является то, что теперь пустые строки считаются недействительными JSON и вызывают ошибку jQuery.
В версии кода jQuery, которую я обновляю, есть много мест, где мы делаем запросы ajax с dataType: 'json'
, а в некоторых из этих случаев есть ситуации, когда сервер может отвечать пустой строкой. Это не проблема в нашей текущей версии jQuery, но я пытаюсь обновить и вызвать проблемы.
Было бы непростой задачей изменить все экземпляры $ .ajax с помощью dataType: 'json'
, в кодовой базе, чтобы обойти ошибку, вызванную $ .parseJSON, поэтому я ищу альтернативный способ работы с этим вопрос. Будет ли что-то вроде $ .ajaxPrefilter работать?
Лучшее решение, которое я мог думать о том, чтобы перехватить данные, которые поступают в через все Ajax звонки с dataType: 'json'
и предварительного процесса он это использовать что-то похожее на jQuery's own suggested workaround, чтобы заставить его работать без необходимости изменять каждый АЯКС вызов индивидуально ,
Предварительный фильтр, скорее всего, не решить проблему. Вы можете обезвредить файл $ .parseJSON, чтобы, если пустая строка передается ему, вместо этого он использует пустой объект или массив. –
Почему бы не исправить сервер так, чтобы он возвращал действительный JSON? –
Хорошая работа. Действительно показывает, что вы сделали домашнее задание. Я согласен с @Blue Skies, почему бы вам не исправить JSON, возвращенный сервером. Это принесет пользу и вам в нескольких других случаях. –