Django中的AJAX与jQuery相当混乱

时间:2011-04-12 01:12:20

标签: jquery python ajax django

我在这里是一个jQuery noob,请帮忙!非常感谢!

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>

所以,当我点击“点击此处”时,我会收到一条带有“hi”的警报,然后什么都没有。似乎没有发送或收到任何东西,因为我在Firebug中没有看到任何内容。我也尝试将请求URL从“xhr_test”更改为“myApp / xhr_test”和“/ myApp / xhr_test”无效。

我做错了什么?

非常感谢!






1 个答案:

答案 0 :(得分:1)

尝试在代码中添加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>