当前位置:  开发笔记 > 编程语言 > 正文

C#Web Service不会输出JSON,只输出XML

如何解决《C#WebService不会输出JSON,只输出XML》经验,为你挑选了1个好方法。

我正在尝试将jQuery和JSON与我编写的C#Web服务一起使用.无论如何,以下代码只会以XML格式输出.

Web服务代码

[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这样的开源库或类似的东西.

感谢你的帮助!



1> eduncan911..:

我觉得有一个错字:

dataType: "jsonp",

应该:

dataType: "json",

推荐阅读
oDavid_仔o_880
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有