指示HTTP重定向中的成功/失败

时间:2014-03-14 08:23:17

标签: http

我有一个Web服务,提交表单并产生三元响应:

  1. 成功
  2. 服务器错误
  3. 客户端错误
  4. Web服务和网站内容是两个不同的应用程序,并且是分离的。

    Web服务不知道应该在3种状态下向客户端显示的特定内容,因此必须依赖重定向到客户端提供的URL作为隐藏表单字段:

    <form action="http://localhost:8001/submissions" method="POST">
        <input type="text" name="email" />
        <input type="hidden" name="success" value="file:///thankyou.html" />
        <input type="hidden" name="client_error" value="file:///client_error.html" />
        <input type="hidden" name="server_error" value="file:///server_error.html" />
        <input type="submit" value="Submit" />
    </form>
    

    应用程序当前使用30*响应代码(即浏览器正确重定向)。

    然而,戴上我的REST帽,是否可以使用40*50*返回更有意义的回复,并且仍然有浏览器重定向?

    我还希望在客户端添加一些异步功能,因此这对于确定请求结果特别有用,而不是根据提供的方式验证重定向位置,这就像隧道一样。

1 个答案:

答案 0 :(得分:0)

您正在进行标准的HTTP POST / HTML表单提交 - 我不会将其称为REST调用。

HTTP协议有一些预定义的Response Codes。如果您希望任何http客户端(浏览器)遵循重定向,您必须使用标准的http重定向状态代码,即30x状态代码,如302 Found