使用Jquery,Django和Google App Engine时,jQuery AJAX请求被调用两次

前端之家收集整理的这篇文章主要介绍了使用Jquery,Django和Google App Engine时,jQuery AJAX请求被调用两次前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

我正在使用Google App Engine,Jquery和Django.我希望在提交表单时将POST数据发送到服务器端,我使用以下代码在JQuery中执行此操作:

    $("#listform").submit(function() {
            $.ajax({
                    type: "POST",url: "/xhrtest",data: {'name': 'herman'},success: function(data){
                            console.log(data)
                    }
            });
    })

在我的Django视图中:

def xhrtest(request):
        if request.method == "POST":
                return HttpResponse("Post data!")
        else:
                return HttpResponse("GET request.")

我本来希望收到“发布数据!”的回复,但不知何故回复总是“GET请求”.这也不是unicode问题,因为可以打印request.method并查看“GET”.

在Firebug中评估这个时,我看到两个请求通过:首先是POST请求,它接收回复“GET请求”.然后是GET请求,它接收回复获取请求”.同样.在Google App Engine开发控制台中,我还可以看到两个请求. POST请求满足301响应,GET满足200.

这是什么意思,我需要做什么才能接收POST数据?

最佳答案
几乎可以肯定的是,您正在请求url / xhrtest,而没有最终的斜杠.默认情况下,Django会将该请求重定向到带有最终斜杠的/ xhrtest / – 并且该重定向将是GET,而不是POST.

有关详细信息,请参阅配置此行为的APPEND_SLASH设置和使用它的CommonMiddleware模块.

猜你在找的jQuery相关文章