2011-12-28 62 views
1

我一直在爲此撓了一個半小時。所以,我通過$ .ajax發送了一個表單,並期待從django返回一個json響應。爲什麼jQuery不能正確處理這個JSON響應?

在前端,JS看起來像這樣

 $.ajax({ 
      "type" : "POST", 
      "url" : action, 
      "dataType" : "json", 
      "data" : serialized_form, 
      "success" : function (data) { 
       alert('hey') 
       console.log(data); 
       //$("#add_shipping").submit(); 
      }, 
      "error" : function (data) { 
       alert(data) 
      } 
     }); 

在後端,Django是返回與所述序列化JSON 釀像這樣HttpResponse對象 - >

 redirectUrl = '/user/purchase/' + str(purchase.pk) + '/' 
     response_data = {} 
     response_data['redirect'] = redirectUrl 
     response_data['status'] = 200 

     rsp = HttpResponse(simplejson.dumps(response_data)) 
     rsp["CONTENT-TYPE"] = "application/json" 

     return rsp 

當jQuery的獲取響應,而不是按照我所要求的將其記錄到控制檯,它只是在瀏覽器中顯示帶有pre標籤的格式化json。我猜這可能與我的內容類型標題有關,但從我可以告訴它正在響應'application/json'。任何人都可以想到我可能做錯了什麼?謝謝!

回答

2

您可能在表單的提交事件中運行該代碼而不取消提交。

因此,瀏覽器正在提交表單並導航到該頁面。

添加return false

+0

謝謝,我現在正在處理它,但是我儘可能地返回false。我正在深入挖掘,但似乎這是正確的軌道。 – Hacknightly

+0

你能告訴我們處理程序嗎? – SLaks

+0

好吧,我實際上是想在對方提交函數的回調中提交一個表單,事實證明我的目標是錯誤的表單。但是,由於SLak非常接近正確的答案,勾號就是他的方式。感謝幫助人們:) – Hacknightly

相關問題