2016-02-23 48 views
2

我調用服務器端方法$.post(),它調用一個WS。 如果WS送我回一個錯誤,我想$.post()失敗,然後在

.fail(function(error) { 
    // display error message 
}); 

去我的服務器方法:

public JsonResult myMethod(string reference, long quantity, ControllerContext context) 
{ 
    wsResponse = callWS(reference, quantity); 

    if (GenericUtils.isError(wsResponse)) 
    { 
     // ???? 
    } 
    else 
    { 
     return Json(response); 
    } 
} 
+3

拋出異常? –

+0

檢查此問題http://stackoverflow.com/questions/26605065/jquery-ajax-return-success-error-from-mvc-net-controller – dreamweiver

+0

可以在4xx系列中設置自定義狀態代碼標題。 – charlietfl

回答

2

你必須發送來自服務器的響應有一個HTTP錯誤代碼,如400錯誤請求,401未經授權,...取決於錯誤。

jQuery僅將200到299和304視爲成功,所以其他任何內容都將由.fail()處理。

2
public ActionResult myMethod(string reference, long quantity, ControllerContext context) 
{ 
    wsResponse = callWS(reference, quantity); 

    if (GenericUtils.isError(wsResponse)) 
    { 
     return new HttpStatusCodeResult(HttpStatusCode.BadRequest, "Something failed"); 
    } 
    else 
    { 
     return Json(response); 
    } 
} 
相關問題