Django中使用jQuery的AJAX相当混乱

0 投票
1 回答
609 浏览
提问于 2025-04-16 15:32

我在jQuery方面还是个新手,请帮帮我!非常感谢!

这是我的urls.py文件:

url('^xhr_test/$','posts.views.xhr_test'),

这是我的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 个回答

1

试着在你的代码里加上一个 event.preventDefault();;比如:

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

撰写回答