使用Django发起Ajax GET请求
我想简单地通过ajax调用我的视图,并获取模板的html代码。
$(document).ready(function () {
$.ajax({
url:url,
data:{language:'English'},
dataType:'html',
success:function (data, status, xhr) {
alert('works yea');
$('#profiles-section').html(data);
}
error: function(data){
alert('errors');
}
});
});
我测试的视图我已经确认了url是正确的,但它从来没有被调用。我设置了断点,但什么都没有发生。在我发起ajax调用之前,我在客户端弹出了url,应该和我在urls.py中定义的匹配。
def teset_view(request, username):
template = 'profiles_view.html'
return render_to_response(template,
context_instance=RequestContext(request))
我是不是漏掉了什么简单的东西?
更新:
我添加了错误处理,看看会不会出错,结果我收到了这个警告,我该如何找出为什么jquery会这样出错。我没有其他地方会和它冲突。
看起来我总是遇到jqXHR状态返回零的问题。
error: function(jqXHR, exception) {
if (jqXHR.status === 0) {
alert('Not connect.\n Verify Network.');
}
我该怎么解决这个问题?我尝试在点击方法的最后添加了e.preventDefault
。
更新:
我的url是这样设置的
url(r'^profiles/(?P<username>[\w.@+-]+)/$','Taleebo.views.profiles_view',name="profiles"),
我添加了getCookie()这个安全的javascript方法,以便我可以正确地发起ajax请求。
2 个回答
1
你有一些错误。安装firebug,你就能看到错误在哪里了!
0
真是不可思议。我发现我的链接竟然取消了ajax请求。
只需要在点击事件后面加上 return false
就能解决这个问题。