2012-03-19 49 views
0

我有一個.NET MVC網站,使用JSON來執行AJAX表單帖子。如果發生驗證錯誤(即用戶錯過了必填字段等),則服務器將返回JSON對象中的驗證錯誤,並將響應的HTTP狀態代碼設置爲400範圍內的某個值。在我們的本地機器上,這個工作非常好。4xx從服務器響應不包括JSON數據

但是在我們的CI環境中,它突然停止工作,沒有任何代碼更改。響應從服務器返回正確的HTTP代碼,但內容不是我們控制器返回的JSON,而是標準的.NET錯誤頁面HTML,即狀態碼爲400時僅有11個字節的「錯誤請求」響應。

錯誤代碼爲每個驗證錯誤是正確的,所以我們打右控制器/動作,並驗證工作正常,但由於某些原因,我們的JSON是越來越剪斷了。任何想法,爲什麼這可能會發生?

+0

您的服務器返回400碼範圍內的* *成功驗證(即使* *結果可能表明,該項目實際上是無效的)事實是HTTP的公然濫用。返回200 OK,就像你應該首先做的那樣,這個問題神奇地消失了。 – Jon 2012-03-19 10:57:38

+0

那麼有沒有更合適的代碼可以使用?或者,在JSON中包含'success'字段會更好,並且即使在驗證失敗時也會返回200? – 2012-03-19 11:00:33

+0

第二個選項。 – Jon 2012-03-19 11:02:31

回答

0

您正在獲得400個代碼,因爲您的請求語法不正確。檢查你是否實際編碼json數據是否正確。