2011-07-11 269 views
2

如何從webmethod獲取錯誤消息,我想發起錯誤。另外,我想爲不同的場合提供不同的錯誤信息。從webmethod發送錯誤消息

 $.ajax({ 
      type: "POST", 
      url: "betting.aspx/submitFunction", 
      data: JSON.stringify({ results: jsonObj, edit: $("#ctl00_ContentPlaceHolder1_CreateOrEdit").val() }), 
      contentType: "application/json; charset=utf-8", 
      dataType: "json", 
      success: function(arg) { //call successfull 
       window.location = "bHistory.aspx"; 
      }, 
      error: function(xhr) { 
       alert("Error! You need to login, and try again"); 
       window.location = "login.aspx"; 
       //error occurred 
      } 
     }); 

回答

0

我也遇到過這個問題。問題是,如果你從你的web方法拋出異常,它會被包裝,就像這樣"Message":"{your message}","StackTrace":" at ...

我最終做的是創建這個js函數來解析返回的異常。
這非常難看,我很想看看有沒有人提出更好的方案。

function getErrorMessage(e) { 
    return e.responseText.substring(e.responseText.indexOf("\"Message\":\"") + "\"Message\":\"".length, e.responseText.indexOf("\",\"Stack")); 
} 
+0

謝謝,這正是我所需要的。 – gormit

5

你可以試試這個:

error: function(msg, status) { 
    if (status === "error") { 
     var errorMessage = $.parseJSON(msg.responseText); 
     alert(errorMessage.Message); 
    } 
} 
+0

+1這應該是答案。謝謝。 –

+0

我也是+1。好多了 –