从jQuery Ajax调用返回时出错

时间:2012-05-04 03:59:37

标签: web-services jquery

我在我的网络服务中有这个;

[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警告“无运输”。

谁能看到我做错了什么?

1 个答案:

答案 0 :(得分: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",
            ...

另外,关于这个主题的好文章:Here