Django框架中的Ajax Post?

我在django框架中组合了一个简单的ajax / jquerypost测试,但是不太明白为什么输出不能进入模板页面。 任何人?

我可以在firebug的“响应”选项卡中看到post的内容,但是我是否尝试返回模板或简单消息,浏览器本身没有任何反应。 相反,非ajaxpost按预期工作(加载新页面,发布消息)

我是ajax / jquery / django的新手,所以请原谅我的无知:)

最后,我希望能够通过jquery将任意非表单变量传递给django视图。 可能? 谢谢 :)

这是代码 –

的test.html:

    $(document).ready(function() { $("#testForm").submit(function(event){ event.preventDefault(); $.ajax({ type:"POST", url:"/test_results/" }); }); return false; });    

views.py:

 from django.shortcuts import render_to_response from django.http import HttpResponse def test_ajax(request): if request.is_ajax(): message = "Yes, AJAX!" else: message = "Not Ajax" return HttpResponse(message) #alternative test: return render_to_response('test_results.html') 

urls.py:

 (r'^test_results/$', views.test_ajax), (r'^test/$', views.test), 

几乎是空的test_results.html:

     test results   

我可以在firebug的“响应”选项卡中看到post的内容,但是我是否尝试返回模板或简单消息,浏览器本身没有任何反应。 相反,非ajaxpost按预期工作(加载新页面,发布消息)

如果你收到回复,你会收到回复。 你只是没有做任何事情。

为什么不提醒数据并将其附加到 ,例如:

 $.ajax({ type:"POST", url:"/test_results/", data: { 'arbitrary-data': 'this is arbitrary data', 'some-form-field': $("myform input:first").val(), // from form 'background-color': $("body").css("background-color") // all of this data is submitted via POST to your view. // in django, request.POST['background-color'] }, success: function(data){ alert(data); $("body").append(data); } }); 

您需要为视图返回的响应添加处理程序:

 $.ajax({ type:"POST", url:"/test_results/", dataType: "json", success: function(json) { //specifying a dataType of json makes jQuery pre-eval the response for us console.log(json.message); } }); 

您可能还希望在视图中将响应编码为JavaScript:

 try: import json except ImportError: import simplejson def my_view(request): if request.is_ajax(): return HttpResponse(json.dumps({'message' : 'awesome'}, ensure_ascii=False), mimetype='application/javascript') 

希望能帮到你!