0
我有一個.NET MVC網站,使用JSON來執行AJAX表單帖子。如果發生驗證錯誤(即用戶錯過了必填字段等),則服務器將返回JSON對象中的驗證錯誤,並將響應的HTTP狀態代碼設置爲400範圍內的某個值。在我們的本地機器上,這個工作非常好。4xx從服務器響應不包括JSON數據
但是在我們的CI環境中,它突然停止工作,沒有任何代碼更改。響應從服務器返回正確的HTTP代碼,但內容不是我們控制器返回的JSON,而是標準的.NET錯誤頁面HTML,即狀態碼爲400時僅有11個字節的「錯誤請求」響應。
錯誤代碼爲每個驗證錯誤是正確的,所以我們打右控制器/動作,並驗證工作正常,但由於某些原因,我們的JSON是越來越剪斷了。任何想法,爲什麼這可能會發生?
您的服務器返回400碼範圍內的* *成功驗證(即使* *結果可能表明,該項目實際上是無效的)事實是HTTP的公然濫用。返回200 OK,就像你應該首先做的那樣,這個問題神奇地消失了。 – Jon 2012-03-19 10:57:38
那麼有沒有更合適的代碼可以使用?或者,在JSON中包含'success'字段會更好,並且即使在驗證失敗時也會返回200? – 2012-03-19 11:00:33
第二個選項。 – Jon 2012-03-19 11:02:31