2016-02-17 4 views
0

У меня есть некоторые Ajax-код на стороне клиента, как это:Ajax вызова не возвращает ошибка

$.ajax({ 
       type: "POST", 
       url: "frmPNList.aspx/ChangeGroupOfUSNs", 
       async: false, 
       contentType: "application/json; charset=utf-8", 
       //data: '{strNewUSN: "' + usn.value + '", strURNs: "' + id[1] + '", strDatasetName: "' + id[2] + '", strCon: "' + $("#<%=fieldGenieConnectionString.ClientID%>")[0].value + '"}', 
       data: '{strNewUSN: "' + usn.value + '", arrayURNDataset: ' + JSON.stringify(strURNDataset) + ', strCon: "' + connectionstring.value + '", strUserNameLocal: "' + username.value + '"}', 
       //data: '{strNewUSN: 9, strURNs: 1, strDatasetName: 2}', 
       dataType: "json", 
       success: OnSuccess(), 
       error: function (xhr, errorType, exception) { 
        var errorMessage = exception || xhr.statusText; //If exception null, then default to xhr.statusText 
        alert("there was an error changing the USN of the group: " + errorMessage); 
       }, 
       failure: function() { 
        alert('there was an error changing the USN of the group.') 

       } 
      }); 

      function OnSuccess() { 
       return function() { 

       } 
      } 
      //end of AJAX call 

и на стороне сервера:

<System.Web.Services.WebMethod()> _ 
     Public Shared Sub ChangeGroupOfUSNs(ByVal strNewUSN As String, ByVal arrayURNDataset As String, ByVal strCon As String, ByVal strUserNameLocal As String) 
Try 
      Throw New Exception 
     Catch ex As Exception 

     End Try 
    End Sub 

Сообщение отказа не называются. Почему это?

+0

Вы попадаете в исключение, поэтому его убивают и не распространяют; сервер не распознает ошибку, поэтому возвращает 200 вместо кода ошибки 500. –

+0

Я не слишком разбираюсь в веб-методах vb, но не должен ли вы бросать/возвращать исключение в интерфейс или что-то в этом роде? или, может быть, просто верните http: 500? просмотр кода выглядит так, что ваш запрос никогда ничего не отвечает, когда он входит в блок catch. – wdoering

ответ

2

Неисправность срабатывает только тогда, когда что-то пошло не так с самим запросом (ошибка 404, ошибка 500 и т. Д.). Он не возвращает ошибки PHP/ASP.

Если вы хотите проверить ошибки PHP/ASP, вам придется сделать это самостоятельно (в выполненной функции вы можете создавать некоторые операторы if).