2014-01-30 4 views
0

Прошло более года с тех пор, как Ive сделал это, и я не могу вспомнить советы, которые я использовал для отладки этой ситуации. Получил страницу asp.net, которая делает вызов jQuery ajax методу веб-службы Что-то вроде этого.jQuery ajax call to asmx webmethod

<script> 
    $(document).ready(function() { 

     //test 
     debugger; 

     $.ajax({ 
      type: "POST", 
      url: "Common.asmx/GetStateList", 
      dataType: "json", 
      data: "{}", 
      contentType: "application/json; charset=utf-8", 
      success: function (data) { 
       var datafromServer = data.d.split(":"); 
       $("[id$='tbOrderState']").autocomplete({ 
        source: datafromServer 
       }); 
      }, 
      error: function (XMLHttpRequest, textStatus, errorThrown) { 
       alert(textStatus); 
      } 
     }); 

    }) 

Однако, когда он работает ... моя точка останова в коде веб-службы не ударил и я просто получить «ошибку» в встревоженной всплывающем окне.

Что я могу проверить.

+0

Откройте инструменты разработчика (F12) и перейдите на вкладку Сеть. Вы увидите запрос и что произошло. – tymeJV

+0

Вы добавили [ScriptMethod] к вашему методу в asmx? – Matt

+0

Нет, не используя атрибут [ScriptMethod], пришлось искать его. Выглядит полезно. Кроме того, я просмотрел вкладку «Сеть» с помощью инструмента F12, и, конечно же, мой звонок в веб-службу получает ошибку 500 ... но все же моя точка останова в веб-службе не попадает? Его в том же проекте. – bitshift

ответ

0

Для того, чтобы ваш веб-сервис вызывался из javascript, вам необходимо включить эту строку вверху страницы asmx.

[System.Web.Script.Services.ScriptService] 

Обычно эта строка добавляется, но закомментирована. Просто удалите комментарий, и вам должно быть хорошо идти.