0

这是我的脚本

$(document).ready(function () {
        $.ajax({
            type: "get",
            url: "http://localhost:63384/ListWebService.asmx/HelloWorld",
            success: function (data) { alert(data) }
        });
    });

我的网络服务包含

[WebMethod]
    public string HelloWorld()
    {
        return "Hello World";
    }

在运行 asmx 时,我得到了正确的输出。当我使用 post 方法时,相同的 url 会产生输出。但脚本什么也没产生,甚至没有空警报框。错误是什么?

4

4 回答 4

1

将 contentType 添加到您的 ajax 调用中。而且,我记得。您的结果将在 data.d 例如:

dataType: 'json',
contentType: "application/json; charset=utf-8"

更新

尝试使用带有 webmethod 的 aspx 页面。看起来您的 web.config 没有针对 asmx 进行调整。可能是不允许 GET。

这有效:

<script>
        $(document).ready(function () {
            $.ajax({
                type: "post",
                dataType: 'json',
                contentType: "application/json; charset=utf-8",
                url: "Default.aspx/HelloWorld",
                success: function (data) { alert(data.d); }
            });
        });
    </script>
于 2013-10-03T14:13:06.980 回答
1

您需要知道哪里出了问题
获得 intell 的最佳方法是在您可以调试的 ajax 调用中添加一个错误处理程序。
它应该/可能看起来像这样:

$(document).ready(function () {
        $.ajax({
            type: "get",
            url: "http://localhost:63384/ListWebService.asmx/HelloWorld",
            success: function (data) { alert(data) }
            error: function (request, status, error) {
              alert(request.responseText);
            }
        });
    });

编辑:
我猜您的网络服务未配置为获取呼叫,而仅用于发布。
您可以深入配置文件以启用获取,但可能尝试更改类型参数以先发布以查看是否有效。

于 2013-10-03T14:00:14.113 回答
0

尝试这个:

url: "Page.aspx/WriteWebMethodName"
于 2013-10-03T13:58:25.980 回答
0

当您在服务的返回上设置断点时,它会被命中吗?如果不是,那么 url 可能是错误的。

于 2013-10-03T14:12:12.907 回答