【问题标题】:jQuery AJAX not hitting ASP.NET Web Service when passing parameters传递参数时,jQuery AJAX 未命中 ASP.NET Web 服务
【发布时间】:2023-03-28 13:59:02
【问题描述】:

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 作为参数传入“{}”时,它工作正常。一旦我尝试传入一个字符串参数,它就会停止工作。

【问题讨论】:

  • 我不知道这是否重要,但不是基于 Web 服务 SOAP,传入请求参数只会将 URL 更改为:/MyService.asmx/MyWebMethod?{"searchCriteria" : "1|2|3"} 不太好用
  • @Bob 我查看了大约 5 个不同的示例,他们都建议这样做。我以前使用过 .NET MVC。这(或类似的)将是在 MVC 中执行此操作的方式。

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


【解决方案1】:

好的!在认真敲击键盘并学习了一些额外的 FireBug 技能后,我的问题得到了解决。

url: "/MyService.asmx/MyWebMethod",

应该是

网址:“MyService.asmx/MyWebMethod”,

没有第一个“/”。
显然,第一个电话将转到 www.mysite.com/MyService.asmx,而不是 www.mysite.com/dir/MyService.asmx,即使我是从 /dir... 中拨打电话的。
祝大家 AJAXing 快乐!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-12-31
    • 2015-08-24
    • 1970-01-01
    • 1970-01-01
    • 2010-11-27
    • 2011-06-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多