为什么我从jsonp请求获得XML响应?

时间:2012-07-12 08:38:29

标签: asp.net ajax web-services jquery jsonp

我使用jQuery.ajax函数向以下asp.net webservice发出GET请求:

[WebMethod]
[ScriptMethod(UseHttpGet = true, ResponseFormat = ResponseFormat.Json)]
public string GetAgentsGroupNameById(int id)

我将contentType设置为'application \ json',将dataType设置为'jsonp',但我仍然得到xml响应:

<?xml version="1.0" encoding="utf-8"?> 
<string xmlns="tempuri.org/">Sports</string>;

以下是请求和响应的详细信息,如chrome的开发工具中所示: enter image description here

我的请求有问题吗?或者也许与webservice本身?

2 个答案:

答案 0 :(得分:0)

Webservice可以返回JSON和XML,您必须在ajax调用中指定所需的格式,如contentType: 'application/json; charset=utf-8'。序列化是自动的。不要担心你的代码会正常工作。返回的内容的格式为

  <?xml version="1.0" encoding="utf-8" ?> 
        <string xmlns="http://formshare.com/">
           [{"VAL1":"SSDSDSD"},{"VAL2":"PDWDWWD"}]//Example JSON
        </string>

答案 1 :(得分:0)

似乎我必须添加一个脚本标记来包装响应(在Web服务中)。 我知道它可以通过WCF自动完成,但是我不确定asp.net webservices是否可以为我完成这项工作,所以我将添加一个HttpModule来做这件事并让你知道。