我在我的网络服务中有这个;
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[System.Web.Script.Services.ScriptService]
public class Service1 : System.Web.Services.WebService
{
[WebMethod]
public string HelloWorld()
{
return "Hello Worlds";
}
}
这是我的jQuery;
$(document).ready(function () {
$.support.cors = true;
$.ajax({
type: "POST",
url: "http://localhost:61614/Service1.asmx/HelloWorld",
data: "{}",
dataType: "json",
success: function (msg) {
alert(0);
alert(msg);
}, error: function (a,b,c) { alert(c); }
});
});
当我运行时,我在Web服务中的断点触发并返回“Hello Worlds”。
然而,在返回jQuery时我会进入错误函数。 Safari只会提醒空字符串,IE警告“无运输”。
谁能看到我做错了什么?
答案 0 :(得分:0)
您还需要添加ScriptMethod
属性:
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
[WebMethod]
public string HelloWorld()
{
return "Hello Worlds";
}
此外,您需要在ajax调用中指定contentType:
$.ajax({
type: "POST",
contentType: "application/json; charset=utf-8",
url: "http://localhost:61614/Service1.asmx/HelloWorld",
data: "{}",
dataType: "json",
...
另外,关于这个主题的好文章:Here。