jquery json null при использовании localhost - PullRequest
1 голос
/ 10 июня 2010

Я пытаюсь загрузить json, сгенерированный моим приложением django.Это работает, когда я сохраняю вывод json и загружаю его из статического файла.Однако когда я звоню на сервер, он возвращает ноль.

JSON

{"users": [
    {
        "id": 1,
        "name": "arnold"
    }, 
    {
        "id": 2,
        "name": "frankie"
    }
]}

Ajax-вызов

$.ajax({
    url: "http://localhost:8000/json",  //vs. json.js
    dataType: 'json',
    type: 'get',
    timeout: 20000,
    error: function() {
        alert("error");
    },
    beforeSend: function() {
        alert("beforeSend");
    },
    complete: function() {
        alert("complete");
    },
    success: function(data) {
        alert(data.users[0].name);
    }
});

view.py

return HttpResponse(simplejson.dumps(data), content_type = 'application/json; charset=utf8')

1 Ответ

2 голосов
/ 10 июня 2010

Похоже та же политика происхождения для меня.Чтобы проверить, вы можете поместить свой тестовый html на сервер (localhost: 8000), загрузить его оттуда и посмотреть, работает ли он.

Чтобы исправить, вы можете использовать dataType 'jsonp' или 'script'.Например, для jsonp вам нужно только заключить ответ в вызов js: random_callback(your_json_here);, где random_callback - это значение параметра запроса 'callback' (генерируется jquery).

Подробнее по теме: http://api.jquery.com/jQuery.ajax/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...