Спасибо, что нашли время, чтобы посмотреть на мой вопрос.Sammy.js не оказывает JSONP-запрос на приложение Django
Я создаю гибридное приложение с Sammy.js на front-end и Django на задней панели. Мой сайт - это всего лишь один index.html, размещенный на S3 через CloudFront, и нет, это не домашнее задание :)
Я бы хотел отобразить список категорий для маршрута «#/projects» с категориями, запрос JSONP для моего бэкэнда django, работающего в другом домене.
Мои Джанго вид:
def get_categories(request):
jsoncallback = request.GET.get('jsoncallback')
data = {'categories': [{'name': c.name, 'slug': c.slug} for c in categories]}
jsonp = '{0}({1});'.format(jsoncallback, data)
response = json.dumps(jsonp, ensure_ascii=False)
return HttpResponse(response, content_type='application/json')
Мой Сэмми маршрут:
(function($) {
var app = $.sammy('#app', function() {
// (default route here)
this.get('#/projects', function(context) {
// localhost via manage.py runserver
$.getJSON('http://localhost:8000/projects/categories/?jsoncallback=?',
null, function(categories) {
$.each(categories, function(i, category) {
console.log('here');
// code to render template here
});
});
});
$(function() {
app.run('#/');
});
})(jQuery);
Часть ответа вызова на мой взгляд Django в Firebug является:
"jQuery183018328394494212097_1372132674985({'categories':
[{'name': u'Open Source', 'slug': u'open-source'},
{'name': u'Web Development', 'slug': u'web-development'},
{'name': u'Print', 'slug': u'print'}]});"
Однако мой console.log
заявление никогда не достигается. Я не уверен, что я делаю неправильно. Может ли кто-нибудь указать мне в правильном направлении? Несколько часов возиться и после многих примеров JSONP в Интернете, к сожалению, не помогают.