Если вы установите тип ответа на json
, то jQuery проверяет ответ, чтобы увидеть, является ли он действительным JSON (а поскольку это XML, это не так) ... когда он недопустим молча происходит сбой, поскольку jQuery 1.4 + .
При отправке запроса есть 3 важных бита, по умолчанию это должно быть POST
, и вам необходимо установить contentType
в "application/json; charset=utf-8"
следующим образом:
$.ajax({
url: 'MyService.asmx/Method',
type: 'POST',
data: myData,
dataType: 'json',
contentType: "application/json; charset=utf-8",
success: function(data) {
//do something with data
}
});
Затем на стороне сервера убедитесь, что у вас установлен атрибут ScriptService
, вот пример очень минимальное расположение:
[WebService] //here by default when you create the service
[ScriptService]
public class MyService : System.Web.Services.WebService
{
[WebMethod]
public MyObject MyMethod(int id)
{
return new MyObject();
}
}