【问题标题】:recommended return type for a webservice that doesn't return anything (called with jquery)不返回任何内容的 Web 服务的推荐返回类型(使用 jquery 调用)
【发布时间】:2010-10-30 14:27:46
【问题描述】:

我有一个带有一些方法的 Web 服务,从技术上讲,它们在客户端上做的不多。我通过 jquery/ajax 调用它

推荐的返回类型是什么,我通常会返回 JSON ......但如果它不返回任何东西......我是否返回布尔值?即 true = 成功 ... 并且 false = 错误 ??

有什么想法吗?

【问题讨论】:

    标签: javascript jquery ajax json


    【解决方案1】:

    您可以使用 SOAP 路由并以 XML 形式返回状态。

    这几乎可以被任何东西解析。

    喜欢:

    <m:IsYourMethodSuccessful xmlns:m="Some-Namespace-URI”> 
        <return>true</return> 
    </m:IsYourMethodSuccessful> 
    

    这样做的好处是,如果将来您决定需要添加客户端反馈,您可以返回详细的异常信息。

    或者,既然你已经在解析 json:

    { success : true }
    
    { success : false, exception : { ... } }
    

    【讨论】:

    • 为什么这被否决了? XML 和 JSON 方法都使其成为一种返回状态的可扩展方式。
    • 是的,我也想知道这一点,当我看到您的回复时,我认为这是一个好方法..
    【解决方案2】:

    我只会返回一个布尔值 - 最简单的可以工作的东西。

    【讨论】:

    • 是的,目前只返回一个布尔值 ...is 返回为 d.true 或 d.false ... 使用 asp.net ...
    【解决方案3】:

    HTTP 状态码怎么样:

    200 OK
    500 Error
    

    【讨论】:

    • 感谢您的回答,从技术上讲,ajax 已经工作了.. 我从 ajax 得到错误代码...如果服务器上的程序失败.. 所以 500 不会对吗……因为 HTTP 已经工作了……服务器上的方法失败了……
    • 这样看:你想让web服务器做点什么,所以你发送一个请求。服务器做出响应,告诉你它是成功还是失败。
    【解决方案4】:

    这取决于方法。对于更新和创建,我通常返回实体的服务器 ID,以及创建或更新的时间。这有助于客户在本地管理实体的状态(如果他们正在存储它们)。

    【讨论】:

      【解决方案5】:

      如果它没有返回任何内容,您应该使用 HTTP 状态码:

      204 No Content
      The server successfully processed the request, but is not returning any content.
      

      HTTP 状态代码也可用于其他用途,但请注意仅将它们用于 HTTP 状态而非应用程序状态。

      对于应用程序状态,您应该考虑使用标准 JSON 对象(或 SOAP 或 XML 或您使用的任何格式)。这也是 Stack Overflow 的做法,您可以通过在其上运行 HTTP 调试器来验证:

      { "response": true, "data" : <data>, "message" : <message> }
      

      response 属性最好是 true 或 false,以保持客户端上的逻辑简单。该消息通常为空,除非发生错误,在这种情况下它将包含错误消息。

      就 HTTP 状态代码而言,它们应该仅用于指示 HTTP,而不是应用程序状态代码。

      5xx 服务器错误

      500 Internal Server Error
      501 Not Implemented
      502 Bad Gateway
      503 Service Unavailable
      504 Gateway Timeout
      505 HTTP Version Not Supported
      506 Variant Also Negotiates (RFC 2295 )
      507 Insufficient Storage (WebDAV) (RFC 4918 )
      509 Bandwidth Limit Exceeded (Apache bw/limited extension)
      510 Not Extended (RFC 2774 )
      

      2xx 成功

      200 OK
      201 Created
      202 Accepted
      203 Non-Authoritative Information (since HTTP/1.1)
      204 No Content
      205 Reset Content
      206 Partial Content
      207 Multi-Status (WebDAV)
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-03-06
        • 1970-01-01
        • 2010-12-24
        • 2019-03-05
        相关资源
        最近更新 更多