2014-01-30 85 views
0

它已经过了一年,因为我做了这个,我不记得我用来调试这种情况的提示。有一个asp.net页面,使ajax jquery调用web服务方法 这样的事情。jQuery ajax调用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); 
      } 
     }); 

    }) 

但是,当它运行......我在Web服务代码断点不打,我只是在一个警报弹出提示“错误”。

我可以检查什么。

+0

打开您的开发人员工具(F12) - 然后选中网络选项卡。你会看到请求和发生了什么。 – tymeJV

+0

您是否已将[ScriptMethod]添加到asmx中的方法中? – Matt

+0

不,不使用[ScriptMethod]属性,必须查找它。看起来很有用。另外,我用F12工具查看了网络选项卡,果然,我对Web服务的调用得到了500错误......但是,我的Web服务中的断点没有被击中?它在同一个项目中。 – bitshift

回答

0

要允许从JavaScript调用您的Web服务,您需要将此行包含在asmx页面的顶部。

[System.Web.Script.Services.ScriptService] 

通常,该行被添加但注释掉。只要删除评论,你应该很好去。