我第一次尝试使用支持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]
我做错了什么,谢谢
答案 0 :(得分:2)
两件事:
您将自己的网络方法定义为[WebGet]
,但将其称为POST
请求在您的Jquery Ajax方法中。将[WebGet]
替换为
类似的东西:
[WebInvoke(Method = "POST", RequestFormat = WebMessageFormat.Json)]
我不确定您的Web.config中有什么,但您需要确保正确定义了端点行为。
如果您仍然需要帮助,可以发布有用的web.config文件。