2013-09-23 36 views
0

我尝试使用纯jQuery与Django的Ajax。 为了测试我尝试发送数据,然后返回一些数据。 ajax.js:如何简单绑定jQuery ajax和Django?

var jq = jQuery.noConflict(); 
jq(document).ready(function(){ 
    jq.ajax({ 
     type: 'get', 
     url: '/realty/ajax/test/', 
     data: 'test', 
     success: function(data){ 
      alert(data); 
     }, 
     error: function(){ 
      alert("error"); 
     } 
    }); 
}); 

urls.py:

urlpatterns = patterns('', 
    ... 
    url(r'^ajax/test/$', ajax.test), 
) 

ajax.py:

def test(request): 
    return HttpResponse(request) 

但是,警报是空的,像 '请求' 空。但是there is look like work

+1

您是否在Web控制台中遇到任何错误?似乎在urls.py – mariodev

+0

Atterratio中缺少'/ realty',请检查我的答案是否能解决您的问题。如果是这样,请将其标记为正确。谢谢 ;) – Lucas

回答

1

你应该在视图返回序列化的数据:

import json 
def test(request): 
    result = {'result': True} 
    returned_json = json.dumps(result) 
    return HttpResponse(returned_json, mimetype="application/json") 

而在你的javascript:

var jq = jQuery.noConflict(); 
jq(document).ready(function(){ 
    jq.ajax({ 
     type: 'get', 
     url: '/realty/ajax/test/', 
     data: 'test', 
     success: function(data){ 
      alert(data.result); 
     }, 
     error: function(){ 
      alert("error"); 
     } 
    }); 
}); 

这是要告诉你一个真实值警报。