У меня была такая же ошибка.Оказывается, причина была в том, что бэкэнд-метод ожидал разные данные json.В моем вызове Ajax у меня было что-то вроде этого:
$.ajax({
async: false,
type: "POST",
url: "http://13.82.13.196/api.aspx/PostAjax",
data: '{"url":"test"}',
contentType: "application/json; charset=utf-8",
dataType: "json",
});
Теперь в моем WebMethod, внутри моего внутреннего кода C #, я объявил свою конечную точку следующим образом:
public static string PostAjax(AjaxSettings settings)
Где был объявлен AjaxSettings:
public class AjaxSettings
{
public string url { get; set; }
}
Проблема тогда заключалась в том, что отображение между моим вызовом ajax и моей конечной точкой не было тем же.Как только я изменил свой вызов ajax на следующий, все заработало!
var data ='{"url":"test"}';
$.ajax({
async: false,
type: "POST",
url: "http://13.82.13.196/api.aspx/PostAjax",
data: '{"settings":'+data+'}',
contentType: "application/json; charset=utf-8",
dataType: "json"
});
Мне пришлось изменить переменную данных внутри вызова Ajax, чтобы точно соответствовать сигнатуре метода.