嗨,大家好常遇到WCF的一些问题。出于某种原因,我根本没有发送任何数据,或者我得到500内部服务器错误...这意味着WCF不知道我发送了什么。如果我改为WrappedRequest,我可以点击该服务,只发送任何内容。谁能看到我做错了什么?这是javascript
var data = { UserId: 2, Name: "test" };
$.ajax({
url: 'http://localhost:54900/MyService.svc/SaveName',
type: "POST",
cache: false,
dataType: "json",
contentType: "application/json; charset=utf-8",
data: $.toJSON(data),
error: function (data, textStatus, errorThrown) {
alert(errorThrown);
},
success: function (data, textStatus, jqXHR) {
alert('success');
}
});
[WebInvoke(Method = "POST", BodyStyle
= WebMessageBodyStyle.Bare, RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json)]
发现了这个问题。不得不删除enablewebscript并将其留在webHttp。这解决了这个问题。
答案 0 :(得分:0)
当您使用“WebMessageBodyStyle.Bare”选项时,需要以不同的方式将数据发送到WCF服务。
您需要在网址的末尾添加参数的值,而不是ajax调用的日期,如下所示: url:'http:// localhost:54900 / MyService.svc / SaveName / parameters'。
仅供参考 - 只需添加值而不是参数名称。
你还需要在WCF服务上为你的方法添加另一个属性,这就是UriTemplate,这必须像这样格式化:
UriTemplate =“/ theNameOfYourMethod / {firstNameOfYourParameter} / {second ...}”
此致
答案 1 :(得分:0)
抱歉克里斯 做错了。这不是故意的