在asp.net中从jQuery调用支持AJAX的WCF服务

时间:2012-06-02 12:18:45

标签: jquery ajax wcf

我第一次尝试使用支持Ajax的Wcf服务来尝试测试一个非常基本的功能,

这是我的服务文件 Service.svc

[ServiceContract(Namespace = "testService")]
[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]
public class Service
{
[OperationContract]
public void DoWork(int id)
{
    return;
}

[OperationContract]
[WebInvoke]
[WebGet]
public string sting(int id) 
{
    string _sting = string.Format("Number is {0}" + id);
    return _sting;
}

}

并尝试使用jquery来调用但是:

    $(function () {
        $.ajax({
            type: "POST",
            url: "Service.svc/sting",
            data: '{"id":"3"}',
            processData: false,
            contentType: "application/json; charset=utf-8",
            dataType: "json",
            success: function () {
                alert("success");
            },
            error: function (msg) {
                $("#errorDiv").text(msg);
            }
        });
    });

但我总是收到错误[object Object]

我做错了什么,谢谢

1 个答案:

答案 0 :(得分:2)

两件事:

  1. 您将自己的网络方法定义为[WebGet],但将其称为POST 请求在您的Jquery Ajax方法中。将[WebGet]替换为 类似的东西:

    [WebInvoke(Method = "POST", RequestFormat = WebMessageFormat.Json)]

  2. 我不确定您的Web.config中有什么,但您需要确保正确定义了端点行为。

    如果您仍然需要帮助,可以发布有用的web.config文件。