JSON и Python Django - не могут обойти ту же проблему происхождения - функция обратного вызова не вызывается - PullRequest
0 голосов
/ 09 ноября 2011

Я звоню

$. GetJSON ('http://localhost:8000/polls/?callback=?', функция (данные)

и получаю ошибку:

Ошибка: parsererror errorThrown: jQuery16103397698865741826_1320825997345 не был вызван

Если я вызываю json-файл, который находится рядом с моим html-файлом, он работает нормально. Если я вызываю URL-адрес примера Google: http://www.highcharts.com/samples/data/jsonp.php?filename=aapl-c.json&callback=?, он также работает.

Любые идеи? Я думаю, что, возможно, это как-то связано с DJango или с тем, как я возвращаюсь со своего кода на стороне сервера.

index(request):

    a = {}
    a[1320675940] = 1.8
    a[1320675941] = 2.8
    a[1320675942] = 38
    a[1320675943] = 4.8
    a[1320675944] = 5.8
    a[1320675945] = 6.8
    a[1320675946] = 7.8

    data = simplejson.dumps(a)

    return HttpResponse(data, mimetype="text/plain")
    #return HttpResponse(data, mimetype="json")
    #return HttpResponse(str(data), mimetype="text/plain")

1 Ответ

2 голосов
/ 09 ноября 2011

Вы возвращаете JSON (с простым типом текста), а не JSON-P.

Вам нужно посмотреть на значение callback в строке запроса и обернуть JSON в вызов этой функции.

например. для ?callback=foo:

foo(/* Your JSON here */);

Вы также должны использовать правильный тип контента (application/javascript).

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