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

从asp.net中的jQuery调用支持AJAX的WCF服务,jquery,ajax,wcf,Jquery,Ajax,Wcf,我第一次使用支持Ajax的Wcf服务来测试一个非常基本的功能 这是我的服务文件service.svc: [ServiceContract(Namespace = "testService")] [AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)] public class Service { [OperationContract] public void

我第一次使用支持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]

我做错了什么,谢谢两件事:

  • 您将web方法定义为
    [WebGet]
    ,但将其称为
    POST
    在jQueryAjax方法中请求。将
    [WebGet]
    替换为 比如:

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

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

    如果您仍然需要这方面的帮助,如果您可以发布您的web.config文件,这将非常有用