【问题标题】:ASP webservice using GET parameters and return JSON objectASP webservice 使用 GET 参数并返回 JSON 对象
【发布时间】:2012-06-16 00:43:11
【问题描述】:

我的网络服务有问题。当我以 POST 和 JSON 格式传递参数时,它返回一个 JSON 对象。我想将 POST 转换为 GET,但问题是,Web 服务仅以 XML 格式返回。

<script>   
$.ajax({
        type: "GET",
        url: "/web_services/webservice.asmx/getReturnJson",
        data: "params1=1",
        contentType: "application/*; charset=utf-8",
        dataType: "json")
</script>

网络服务:

    [WebMethod]
    [ScriptMethod(UseHttpGet = true, ResponseFormat=ResponseFormat.Json)]
    public List<tempStruct> getReturnJson(String params1)
    { 
     return temp;
    }

【问题讨论】:

  • 现在,我必须使用 POST 方法来设置参数。

标签: asp.net json web-services getmethod


【解决方案1】:

如果您遇到 GET 参数无法正确解析的问题,请在 URL 中设置它们。

$.ajax({
    type: "GET",
    url: "/web_services/webservice.asmx/getReturnJson?params=1",
    contentType: "application/json; charset=utf-8")

还要确保你有所有合适的配置。

<httpHandlers>
    <remove verb="*" path="*.asmx"/>
    <add verb="*" path="*.asmx" type="System.Web.Script.Services.ScriptHandlerFactory"     validate="false"/>
</httpHandlers>

【讨论】:

  • 目前以 XML 格式返回。我调用了 json 格式,以便它返回一个 JSON 对象。我注意到的是,如果我放置 contentType:"application/json" 它会返回一个 json 对象,但它有获取参数的问题。当 contentType 为默认时,它接受 get 参数但以 xml 格式返回
  • 我还尝试在 url 中包含参数。它返回一个错误,说明该 url 没有网络服务。它包含作为 Web 服务 url 名称的参数。
  • 这实际上可以工作,但我希望它成为 GET 方法的主要原因是因为我希望我的参数位于通常的 url.com?param1=1&param2=2
  • 如果http://localhost/web_services/webservice.asmx/getReturnJson?params=1 不起作用,您可能需要查看您的网络配置,同时请确保[System.Web.Script.Services.ScriptService] 在您的类定义的顶部。
【解决方案2】:

发现出于安全原因不接受 POST 请求

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-07-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多