2010-07-07 63 views

回答

14

你可以做這樣的事情你的應用程序中views.py

import json 

    def ajax_handler(req, your_parameter): 

     json_response = json.dumps(convert_data_to_json) 

     return HttpResponse(json_response,mimetype='application/json') 
+0

req未使用,Lombo – whi 2013-01-16 02:10:24

6

大廈Lombo的答案,你可能想利用request.is_ajax()方法。這將檢查HTTP_X_REQUESTED_WITH標頭是否爲XmlHttpRequest。

這是避免向常規GET發送json響應的好方法 - 我猜最糟糕的情況是您的用戶感到困惑,但也可以讓您對ajax和非ajax請求使用相同的視圖。這種方法使構建degrade gracefully的應用程序變得更加容易。

例如:

def your_view(request): 
    data_dict = # get some data 

    if request.is_ajax(): 
     # return json data for ajax request 
     return HttpResponse(json.dumps(data_dict),mimetype='application/json') 

    # return a new page otherwise 
    return render_to_response("your_template.html", data_dict) 

此方法特別適用於表單處理也。

+0

感謝您的信息! – icn 2010-07-08 00:51:44