2013-01-03 48 views
0

我正在使用jquery post for pagination。 django收到帖子請求併發出回覆。jquery post和django響應

問題是我沒有看到在瀏覽器中顯示的響應。

這是我使用JS:

 $.ajax({ 
     type:"POST", 
     url:"/company/sort/", 
     data: { 
       'type': type, 
       'page': page 
     }, 
    }); 

如何才能從Django的響應中顯示?

+0

你可以在這裏複製'views.py'嗎? –

+0

我正在使用render_to_response顯示結果。 – DjangoPy

回答

2

您必須將''onsucess''函數添加到將處理來自Django的響應的結構函數中。

success: function(data) { 
     alert(data); 
    } 

您必須添加到$.ajax調用的字典參數:

$.ajax({ 
    type:"POST", 
    url:"/company/sort/", 
    data: { 
      'type': type, 
      'page': page 
    }, 
    success: function(data) { 
     alert(data); 
    } 
}); 

更新

如果你從劇本的答案不是URL,但該頁面的新內容,您可以將其加載到當前頁面使用

$('body').replaceWith(data); 

$('body').html(data); 
+0

我試過這個: 成功:function(response){ window.location.href = response; } 沒有運氣。 – DjangoPy

+0

您發送頁面的URL在加載答案?你能用'alert'來試試看結果嗎? –

+0

我收到了正確的回覆。 但我該如何重定向到它? – DjangoPy

0

http://api.jquery.com/jQuery.post/

包含一些很好的例子。

我個人比較喜歡:

$.post('url', {'data':'data'}, function(response){ 
    console.log(response); 
}); 

您可能還需要形成從Django中你的迴應。以下是我經常使用的代碼片段:

import json 

def json_response(result, data): 
    response = json.dumps({"result" : result, "data" : data }) 
    return HttpResponse(response, mimetype="application/json") 

def my_view(request): 
    json_response(True, 'Right away Michael') 
+0

我應該使用HttpResponse而不是render_to_response嗎? – DjangoPy

+0

如果您使用ajax進行響應,那麼render_to_response沒有勝利。 render_to_response最適用於模板。你的ajax響應應該是一個純粹的http響應。 –

+0

我不想更改模板的工作功能。 有沒有辦法繞過它? – DjangoPy