Вызов простого веб-сервиса (файл .asmx) из AJAX и JQuery с использованием JSON - ошибка разбора - PullRequest
3 голосов
/ 06 сентября 2010

Я делаю свои первые шаги в попытке использовать все эти технологии вместе ... У меня есть некоторые проблемы ...Вот моя сторона сервера:

[WebMethod(EnableSession = true)]
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
public string simplestMethod()
{
  return "Simplest method returned";
}

А вот моя сторона клиента:

$(document).ready(function(){
   $("a").click(function(event){     
      $.ajax({
      type: "POST",
      url: "http://localhost:53346/d2/TAPI.asmx/simplestMethod",
      data: "{}",
      contentType: "application/json; charset=utf-8",
      dataType: "json",
      success: function (data) {
       alert(data.d);
      },
      error: function (XMLHttpRequest, textStatus, errorThrown) {
       alert("Error Occured!" +" | " + XMLHttpRequest +" | " + textStatus +" | " + 
       errorThrown );
      }
   });
  });
 });

Результатом является предупреждение, которое говорит:Произошла ошибка!|[объект XMLHttpRequest] |Parseerror |не определено.Что разбить не удалось и почему?Я должен упомянуть, что вызов метода WS напрямую работает.Большое спасибо!

Ответы [ 2 ]

4 голосов
/ 06 сентября 2010

Ваш код выглядит хорошо с одним подозреваемым местом: url. Вам следует заменить url на что-то вроде "TAPI.asmx/simplestMethod" или "/d2/TAPI.asmx/simplestMethod".

Более того, если вы хотите изучить, как вызывать веб-метод с параметрами или возвращать более сложные данные из веб-метода, посмотрите на Как создать объект JSON для отправки в AJAX WebService? и веб-служба asmx, json, javascript / jquery? , Могу ли я вернуть JSON из веб-службы .asmx, если ContentType не является JSON? . Как декодировать сообщения об ошибках из исключения внутри веб-метода, см. Получить объект xhr в vb.net, в то время как вызов ajax завершается неудачно .

2 голосов
/ 01 сентября 2011

, если вы хотите использовать WebMethod в jquery, вы должны добавить этот тег в web.config

<configuration>
  <system.web>
    <httpModules>
      <add name="ScriptModule" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
    </httpModules>
  </system.web>
</configuration>

удачи

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...