3ds
@3ds

Прошу помощи $.getJSON

Здравствуйте, подскажите пожалуйста куда копать, а то уже идеи кончились…
Есть тестовый сайт bestmedia.gdeomsk.ru. Когда заходишь по ссылке bestmedia.gdeomsk.ru/clients то видим список клиентов. При клике на клиента загружается json
$.getJSON("/clients/get_works/" + clientId + '?rnd=' + Math.random(), function(json){ .. }
В нормальных браузерах все ок — вываливается список работ (при просмотре учтите что работы заданы не для всех клиентов еще). В ИЕ же… просто молчит и все.
Я поставил blackbird для отладки и IEWatch. IEWatch показывает что запрос приходит но ни ошибок ничего не выдается и в функцию он не входит (обработчик по выходу).
Код ниже:

  1.     $.ajaxSetup({ cache: false });
  2.     log.info('cache cleared');
  3.     $.getJSON("/clients/get_works/" + clientId + '?rnd=' + Math.random(), function(json){
  4.       log.info('getJSON in');
  5.       // other code here....
  6.     });
* This source code was highlighted with Source Code Highlighter.

По нажатию f2 можно открыть blackbird и посмотреть что он не выдает «getJSON in» обрывается после очистки кэша в ИЕ… Подскажите в чем может быть проблема?
  • Вопрос задан
  • 4944 просмотра
Решения вопроса 1
3ds
@3ds Автор вопроса
Блииин косяк был вот в чем. Питон при отдаче ставил:
return HttpResponse(
       js,
       content_type = 'application/json; charset=utf8')


а надо было указать кодировку utf-8 через "-"

return HttpResponse(
        js,
        content_type = 'application/json; charset=utf-8')

Вот так…
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
ilyaplot
@ilyaplot
PHP программист
А в каком ie проблемы? У меня в 9 версии все работает.
Ответ написан
pratamishus
@pratamishus
Вот что заметил при тесте в ИЕ6. При запуске в первый раз — не работает (что идентично очистке кэша). При первой загрузке выдает такую ошибку «undefined» is null or not an object (line 477 symbol 2). К сожалению из-за плохого дебаггера ИЕ6 сложно выявить ошибку без кода. Тем не менее могу подсказать что делать:

Видимо у Вас где-то в коде (возможно даже до вызова JSon) вызывается объект или переменная которая нигде не задана. В этом случае ИЕ обрывает все последующие сценарии. В этом случае я всегда использую половинный дебаггинг (предупреждаю — черный способ, но всегда работает), а то есть

сначала ставите яваскриптовский алерт после первого вызова яваскрипта. Если алерт прошел вставляете после следующего и т.п. пока алерт не перестанет выводиться — таким образом найдете в каком скрипте ошибка.

Затем вставляете алерт в середину скрипта — если показывается переставляете его в середину второй половины, в противном случае в середину первой половины и т.д.

Еще раз — способ черный, но иногда по другому просто невозможно, особенно с ИЕ
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы