【发布时间】:2010-10-14 09:49:02
【问题描述】:
我正在尝试将 jQuery 和 JSON 与我编写的 C# Web 服务一起使用。无论如何,下面的代码只会以 XML 格式输出。
网络服务代码
[WebMethod]
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
public string HelloWorld() {
return "Hello World!";
}
我也有这些属性分配给类
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[ScriptService]
jQuery 代码
$.ajax({
type: "POST",
contentType: "application/json; charset=utf-8",
url: "ScheduleComputerDS.asmx/HelloWorld",
data: "{}",
dataType: "jsonp",
success: function(data) {
alert(data);
}
});
ASMX 页面始终以内容类型“text/xml”的形式返回。我有什么遗漏吗?
编辑:回应几个答案:
如果我的数据类型只是“json”,内容仍然是 XML,jQuery 也不会调用我的回调函数。如果我添加“&callback=?”到 url,IIS 会抛出 HTTP 500 错误。
我的课程确实继承自“System.Web.Services.WebService”。
通过对你们的答案进行一些研究,看来我确实需要弄乱 WCF。不幸的是,返回的 JSON 更多是为 MS Ajax 设计的,对我来说是很多无用的膨胀。我可能会研究像 Jayrock 这样的开源库或类似的东西。
感谢您的帮助!
【问题讨论】:
-
我是 Stackoverflow 的新手,所以我不知道这条评论会如何参考其他评论,但是......如果我的数据类型只是“json”,那么内容仍然是 XML 和 jQuery不会调用我的回调函数。如果我添加“&callback=?”到 url,IIS 抛出 HTTP 500 错误。
-
@TheDude - 您可以编辑原始问题以添加此信息。问题部分左下角的标签下有一个编辑链接
-
如果可以使用 WCF REST Starter Kit,刚刚发布了 Preview 2
标签: c# jquery web-services json