AJAX в Django с JQuery довольно запутанным - PullRequest
0 голосов
/ 12 апреля 2011

Я нуб JQuery, пожалуйста, помогите! Очень ценится!

my urls.py: url('^xhr_test/$','posts.views.xhr_test'),

my views.py:

def xhr_test(request):
if request.is_ajax():
    message = "Hello AJAX"
else:
    message = "Hello"
return HttpResponse(message)

Итак, все очень просто. Эта настройка работает, если одна из двух версий моей HTML-страницы.

HTML-версия 1 является успешной:

<script type="text/javascript">
$(document).ready(function() {
        $.get("xhr_test", function(data) {
           alert(data);
       });
});
</script>

Вот так. Запрос AJAX выполняется всякий раз, когда страница загружается. Так что это работает, и я получаю красивое окно с предупреждением «Hello AJAX»

Теперь HTML версия 2 не работает:

$(document).ready(function() {
   $("a").click(function() {
       alert("hi");
       $.get("xhr_test", function(data) {
           alert(data);
       });
   });
});
<a href="">Click here</a>

Поэтому, когда я нажимаю «Нажмите здесь», я получаю предупреждение с «привет», а затем ничего. Кажется, ничего не отправлено и не получено, потому что я ничего не вижу в Firebug. Я также попытался изменить URL запроса с «xhr_test» на «myApp / xhr_test» и «/ myApp / xhr_test», но безрезультатно.

Что я делаю не так?

Большое спасибо!






1 Ответ

1 голос
/ 12 апреля 2011

Попробуйте добавить event.preventDefault(); к вашему коду; e.g.:

$(document).ready(function() {
   $("a").click(function() {
       event.preventDefault();
       alert("hi");
       $.get("xhr_test", function(data) {
           alert(data);
       });
   });
});
<a href="">Click here</a>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...