我写了一个WCF服务,它接受一个字符串并返回一个字符串。当我从我的javascript调用它时,它会导致显示错误警报。
我已经尝试过阅读API并且不确定我做错了什么或如何显示实际的错误消息。
这是我的javascript:
var path = "http://localhost:15286/Service.svc/SubmitTest?url=" + encodeURIComponent(info.srcUrl);
var jqxhr = $.post(path, function() {
alert("success");
})
.success(function() { alert("second success"); })
.error(function(oEvent) { alert("error"); })
.complete(function() { alert("complete"); });
};
我在调用它时通过调试器观察了该服务,并且它正在返回字符串“Hello World”而没有错误,所以我认为我的问题是在javascript端。
WCF服务:
[ServiceContract]
public interface IService
{
[WebInvoke(UriTemplate = "/Submit?input={value}")]
[OperationContract]
string Submit(string value);
}
public class Service : IService
{
public string Submit(string input)
{
return "hello world";
}
答案 0 :(得分:0)
使用dataType参数,如果服务返回“Hello World”,则dataType为“text”:
var jqxhr = $.post(path, function() {
alert("success");
}, "text") // <====
.success(function() { alert("second success"); })
.error(function(oEvent) { alert("error"); })
.complete(function() { alert("complete"); });
};
dataType服务器所需的数据类型。默认值:智能猜测(xml,json,脚本,文本,html)。
很多时候猜测不是太“智能”......
答案 1 :(得分:0)
您可能会遇到跨域问题尝试添加
Headers.Add("Access-Control-Allow-Origin", "*");
在服务中说响应看起来像
var Response = new HttpResponseMessage<string>("hello world");
Response.Headers.Add("Access-Control-Allow-Origin", "*");
return Response ;