我似乎无法得到这个。
我有这样的WCF服务;
[OperationContract]
[WebInvoke(BodyStyle = WebMessageBodyStyle.Wrapped, Method = "POST", RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json)]
bool Test();
然后执行;
public bool Test()
{
return true;
}
然后是我的jQuery;
jQuery.support.cors = true;
$.ajax({
type: "POST",
contentType: "application/json; charset=utf-8",
dataType: "json",
url: "http://localhost:8732/Design_Time_Addresses/MyService/Service/mex/Test",
timeout: 2000,
success: function (data) {
alert(9);
},
error: function (xhr, status, error) {
alert(status);
alert(error);
}
});
每次我打电话给我都会收到“错误请求”。如果我将URL改为此说“
http://localhost:8732/Design_Time_Addresses/MyService/Service/mex/Tesdt
我收到错误“未知”,所以我认为它正在寻找我的服务。
答案 0 :(得分:0)
您的服务器方法中有ResponseFormat = WebMessageFormat.Json
。
然而,在您的AJAX调用中,dataType
(您希望从服务器返回)是text
。
TLDR:
更改dataType: "text"
----> dataType: "json"
答案 1 :(得分:0)
您通常不应该将请求发送给" mex"端点,除非您将Web端点地址配置为该端点。如果您的webHttpBinding
/ webHttpBehavior
端点位于http://localhost:8732/Design_Time_Addresses/MyService/Service,则您服务中的URI应该就是那个。
$.ajax({
type: "POST",
contentType: "application/json; charset=utf-8",
dataType: "json",
url: "http://localhost:8732/Design_Time_Addresses/MyService/Service/Test",
timeout: 2000,
success: function (data) {
alert(9);
},
error: function (xhr, status, error) {
alert(status);
alert(error);
}
});
检查该地址,如果它不起作用,请发布您的web.config和您的global.asax.cs(如果您正在定义任何路线)