我在这里是一个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”无效。
我做错了什么?
非常感谢!
答案 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>