0

我的网络服务中有这个;

[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[System.Web.Script.Services.ScriptService]
public class Service1 : System.Web.Services.WebService
{
    [WebMethod]
    public string HelloWorld()
    {
        return "Hello Worlds";
    }
}

这是我的jQuery;

    $(document).ready(function () {
        $.support.cors = true;

        $.ajax({
            type: "POST",
            url: "http://localhost:61614/Service1.asmx/HelloWorld",
            data: "{}",
            dataType: "json",
            success: function (msg) {
                alert(0);
                alert(msg);
            }, error: function (a,b,c) { alert(c); }
        });
    });

当我运行时,我在 Web 服务中的断点触发并返回“Hello Worlds”。

但是,在返回 jQuery 时,我会进入错误函数。Safari 只会提示一个空字符串,而 IE 会提示“无传输”。

谁能看到我做错了什么?

4

1 回答 1

0

您还需要添加ScriptMethod属性:

[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
[WebMethod]
public string HelloWorld()
{
    return "Hello Worlds";
}

此外,您需要在 ajax 调用中指定 contentType:

$.ajax({
            type: "POST",
            contentType: "application/json; charset=utf-8",
            url: "http://localhost:61614/Service1.asmx/HelloWorld",
            data: "{}",
            dataType: "json",
            ...

另外,关于该主题的一篇好文章:这里

于 2012-05-04T04:29:28.713 回答