传递参数时,jQuery AJAX没有访问ASP.NET Web服务

时间:2010-07-28 17:02:07

标签: asp.net jquery vb.net ajax web-services

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 :(得分:0)

确定!在严重敲击键盘并获得一些额外的FireBug技能后,我的问题得到了解决。

url:“/ MyService.asmx / MyWebMethod”,

应该是

url:“MyService.asmx / MyWebMethod”,

没有第一个“/”。
显然,第一个电话是访问www.mysite.com/MyService.asmx,因为它反对www.mysite.com/dir/MyService.asmx,即使是在/ dir内进行呼叫......我也这样做了。
祝大家玩得开心!