【问题标题】:Why if I call a WebService with ScriptManager it returns json?为什么如果我用 ScriptManager 调用 WebService 它会返回 json?
【发布时间】:2014-03-18 09:35:32
【问题描述】:

我定义了这个 ScriptManager:

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

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

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

【问题讨论】:

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


    【解决方案1】:

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

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

    Content-Type: application/json
    

    问题:谁将 XML 转换为 JSON?

    回答:服务器可以,但根据您的规范

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

    回答:不需要,只需指定 Content-Type

    【讨论】:

      【解决方案2】:

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

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

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

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

      【讨论】:

        猜你喜欢
        • 2012-07-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-08-27
        • 1970-01-01
        • 1970-01-01
        • 2023-04-05
        • 1970-01-01
        相关资源
        最近更新 更多