JQuery AJAX не работает веб-службы ASP.NET при передаче параметров - PullRequest
0 голосов
/ 28 июля 2010

JavaScript:

 var paramStr =  $('#id1').val() + '|' + $('#id2').val() + '|' +  $('#id3').val();
    paramStr = '{"searchCriteria": "' + paramStr + '"}';

    $.ajax({
      type: "POST",
      url: "/MyService.asmx/MyWebMethod",
      data: paramStr,
      contentType: "application/json; charset=utf-8",
      dataType: "json",
      success: function(result) {

      }
    });

VB.NET:

<System.Web.Script.Services.ScriptService()> _
<System.Web.Services.WebService(Namespace:="http://tempuri.org/")> _
<System.Web.Services.WebServiceBinding(ConformsTo:=WsiProfiles.BasicProfile1_1)> _
<ToolboxItem(False)> _
Public Class LogisticsMainMenuService
  Inherits System.Web.Services.WebService

      <WebMethod(EnableSession:=True)> _
      <ScriptMethod(ResponseFormat:=ResponseFormat.Json)> _
      Public Function MyWebMethod(ByVal searchCriteria As String) As String
        Dim dummy as Integer = 1
        .
        .
        Return someResult
      End Function
End Class

Я поставил точку останова внутри MyWebMethod.Когда я вызываю этот вызов на странице, точка останова никогда не срабатывает.Это прекрасно работает, когда я удаляю все параметры из подписи MyWebMethod и передаю '{}' из JS в качестве параметров.Как только я пытаюсь передать строковый параметр, он перестает работать.

1 Ответ

0 голосов
/ 28 июля 2010

Хорошо!После серьезного удара головой о клавиатуру и приобретения дополнительных навыков FireBug я решил свою проблему.

url: "/MyService.asmx/MyWebMethod",

должно быть

url: "MyService.asmx / MyWebMethod",

без первого "/".
. По-видимому, первый вызов идет на www.mysite.com/MyService.asmx, а не на www.mysite.com/dir/MyService.asmx, даже если я звоню изнутри / dir ... что я и сделал.
С Днем AJAXing, всем!

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