2013-06-02 31 views
1

我使用節點+快遞Express BodyParser迴應錯誤請求,狀態400?

我用下面的函數來從服務器獲取一些JSON:

  $.ajax({ 
       url: url, 
       contentType: "application/json", 
       dataType: "json", 
       type: "POST", 
       data: JSON.stringify(data), 
       success: cb 
      }); 

關於時間快火災的1/3回一個錯誤:

{ [Bad Request: Bad Request] name: 'Bad Request', status: 400 } 

任何想法我可能做錯了什麼?

+0

堆棧跟蹤會很好 –

回答

0

聽起來像是大約1/3的時間,你的數據不是一個對象或數組(或許是單個數字或字符串,或者是nullundefined)。

即使JSON.stringify將處理這些類型,但它們不會生成有效的JSON text(因爲它在定義JSON格式的RFC4627中調用)。

+0

這是我的第一個猜測,但我已確認數據是有效的JSON。事實上,我已經爲測試目的對字符串進行了硬編碼。 – user1031947

+0

您還使用了哪些其他中間件?也許400是由另一箇中間件生成的,錯誤甚至與你發送的JSON沒有關係。 – robertklep

0

我建議你在將數據轉換成json之前檢查你的數據,看它是否已經是json。查看此answer用於檢查json。