使用Django发起Ajax GET请求

2 投票
2 回答
2070 浏览
提问于 2025-04-17 15:03

我想简单地通过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 就能解决这个问题。

撰写回答