【问题标题】:jQuery ajax call to asmx webmethodjQuery ajax 调用 asmx webmethod
【发布时间】:2014-01-30 22:20:25
【问题描述】:

我这样做已经一年多了,我不记得我用来调试这种情况的技巧了。有一个 ajax jquery 调用 Web 服务方法的 asp.net 页面 像这样。

    <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 服务代码中的断点未命中,我只是在弹出警报中得到“错误”。

我可以检查什么。

【问题讨论】:

  • 弹出打开您的开发者工具 (F12) -- 并检查“网络”选项卡。您会看到请求以及发生了什么。
  • 您是否在 asmx 中的方法中添加了 [ScriptMethod]?
  • 不,没有使用 [ScriptMethod] 属性,必须查找它。看起来很有用。另外,我使用 F12 工具查看了 Network 选项卡,果然,我对 Web 服务的调用得到了 500 错误……但是我在 Web 服务中的断点没有被命中?它在同一个项目中。
  • 谢谢你们,我应该注意到 Web 服务类属性中的 cmets // 要允许使用 ASP.NET AJAX 从脚本调用此 Web 服务,请取消注释以下行。现在工作!

标签: jquery asp.net ajax jquery-ui


【解决方案1】:

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

[System.Web.Script.Services.ScriptService]

通常会添加该行但会被注释掉。只需删除评论,您就可以开始了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-07
    • 2014-08-11
    • 1970-01-01
    相关资源
    最近更新 更多