Подтвердить что ты не робот

JQuery.getJSON не вызывает обратный вызов

У меня есть html-код:

<button>asd</button>
<script type = "text/javascript">
$('button').click(
    function() {
        $.getJSON('/schedule/test/', function(json) {
            alert('json: ' + json + ' ...');
        });
    }
);
</script>

и соответствующий вид:

def test(request):
    if request.method == 'GET':
        json = simplejson.dumps('hello world!')
        return HttpResponse(json, mimetype = 'application/json')

Выполняется представление (проверено с использованием print), переменная json инициализируется, но не появляется предупреждение. Что я сделал не так? Я уже видел некоторые документы об этом ( http://docs.jquery.com/Ajax/jQuery.getJSON#urldatacallback например), но я не нашел ответа.

EDIT: проблема заключалась в том, что HttpResponse не был импортирован... К сожалению, Django не дал никаких ошибок. Все остальное было правильным. приветствует
Chriss

4b9b3361

Ответ 1

Вероятно, json неправильно сформирован. Иногда это случается со мной, когда мой код, который должен производить json, вызывает ошибку. Два варианта:

  • Используйте firebug для просмотра ответа JSON

  • Обработка ошибок установки в вашем jquery-коде с помощью параметров jQuery.ajaxSetup, таких как:

      $.ajaxSetup({"error":function(XMLHttpRequest,textStatus, errorThrown) {   
          alert(textStatus);
          alert(errorThrown);
          alert(XMLHttpRequest.responseText);
      }});
    

Использование обработки ошибок для отладки велик, так как вы сразу узнаете, когда возникнет проблема с вашим ответом. Вы можете проверить jQuery-документацию для jQuery.ajax, которая имеет все доступные параметры для jQuery.ajaxSetup.

EDIT: третий вариант заключается в том, чтобы просто открыть URL-адрес, который должен генерировать JSON, и запустить вывод через JSON Lint, чтобы проверить его.

Ответ 2

Вы уверены, что JSON действительно? взгляните на ответ напрямую или используйте Firebug

Ответ 4

Я думаю, что вам не хватает шаблона $in url.