这个ajax webservice调用有什么错误?

时间:2013-10-03 13:55:22

标签: jquery asp.net ajax web-services

这是我的剧本

$(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 个答案:

答案 0 :(得分: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);
            }
        });
    });

编辑:
我猜你的网络服务没有配置来获取电话但只有帖子。
你可以潜入配置文件以启用获取但是可能尝试更改类型参数以先发布以查看是否有效。

答案 1 :(得分: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>

答案 2 :(得分:0)

试试这个:

url: "Page.aspx/WriteWebMethodName"

答案 3 :(得分:0)

当你在服务的回报中设置一个断点时它会被击中吗?如果没有那么网址可能是错误的。