为什么我用ScriptManager调用WebService它会返回json?

时间:2014-02-18 14:39:53

标签: c# .net xml json web-services

我定义了这个ScriptManager:

<asp:ScriptManager ID="ScriptManager1" runat="server">
    <Services>
        <asp:ServiceReference Path="~/webservices/WSModuloSocial.asmx" InlineScript="true" />
    </Services>
</asp:ScriptManager>

如果我从网站调用WebService函数(使用它),则返回json。 但是,如果我从另一个域调用相同的WebService函数(使用jquery,Access-Control-Allow-Origin策略),它将返回XML。

谁将XML转换为JSON?我应该在哪里转换它?

2 个答案:

答案 0 :(得分:0)

在您对服务器的请求中,您可以指定要回复的内容。服务器可能接受json和xml作为返回类型。

在您对服务器的请求中,在请求的标头中指定Content-Type

Content-Type: application/json
  

问题:谁将XML转换为JSON?

     

回答:服务器确实如此,但根据您的规范

     

问题:我应该在哪里转换?

     

回答:你没有,只需指定Content-Type

答案 1 :(得分:0)

可以使用Content-Type标头,Accept标头或向请求URI添加.xml或.json扩展名来指定请求和响应的格式。

如果在标头和/或格式扩展中指定了冲突格式,则后者优先。 XML当前是请求和响应的默认格式。

JSON是Windows Communication Foundation(WCF)中创建的ScriptManager控件使用的默认数据格式。

在不与ASP.NET集成的情况下创建WebServices时也可以使用此格式 - 在这种情况下,XML是默认值,但可以选择JSON。