S0ulReaver
@S0ulReaver

Django, и JQuery (AJAX) — нет ответа?

Почитал учебник по JQuery, и AJAX в частности. Захотелось прикрутить все это дело к Джанге. Пробовать начал по туториалу здесь: webcloud.se/log/AJAX-in-Django-with-jQuery/



В Django всё просто, имеем такой метод:



def ajax(request):<br/>
 if request.is_ajax():<br/>
 message = 'Hello world!'<br/>
 else:<br/>
 message = 'Hello'<br/>
 return HttpResponse(message)<br/>


Соответственно при попытке зайти на URL в браузерах всё без проблем. Сама Джанга крутится на моей машине — дев сервере соответственно.



Страничка с jQuery расположена на одном из бесплатных хостингов, такое содержание:



$(document).ready(function(e) {<br/>
$('#ajaxButton').click(function(){<br/>
 $('#ajaxdiv').load(&quot;http://***.***.***.***:8000/test_ajax&quot;);<br/>
 }); <br/>
});<br/>
Вроде как проще быть не может, однако… Открываю страничку на бесплатном хостинге, жму кнопочку, ничего не происходит. В консоли сервака Джанги видно что get запрос успешно прилетел. Посмотрел в Firebug — тело ответа отсутствует (когда если просто открыть страничку сервера в браузере, то тело ответа в запросе есть — в нем находится положенная строчка «Hello»). При этом ещё один феномен для меня — сервак Джанги получает Get запрос только если кликаю по кнопке в Firefox, в остальных браузерах ничего не посылается.



С чем могут быть связанны такие проблемы?



Версия Django 1.2.7, jQuery 1.7.2
  • Вопрос задан
  • 5255 просмотров
Решения вопроса 1
@egorinsk
Нельзя (без извращений) отправлять AJAX-запросы с одного домена на другой. Точнее, отправлять можно, нельзя прочесть ответ. Это назвается same origin policy (есть обходные пути: JSONP и cross-origin requests). Я настоятельно советую отложить изучение jQuery и django и изучить основы HTTP, HTML и Javascript, а также принципы работы браузеров. Использование фреймворков не отменяет знание основ.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы