I have some ajax code on the client side like this:
$.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
and on the server side:
<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
The failure message is not called. Why is this?
Failure only gets triggered when something goes wrong with the request itself (error 404, error 500, etc). It does not return PHP/ASP errors.
If you want to check PHP/ASP errors you'll have to make that yourself (in the done function you can create some if statements).