【问题标题】:Difference in behaviour between HTTP Status code 410 and other codes w.r.t Angular 5HTTP状态代码410和其他代码w.r.t Angular 5之间的行为差​​异
【发布时间】:2018-04-27 10:07:36
【问题描述】:

后端:Java

前端:Angular 5

考虑一下:

前端向后端发出 HTTP 请求。

后端返回一个 HTTP 状态代码作为对前端请求的响应。

对于错误处理测试,我手动更改了从后端返回的 HTTP 代码。

场景 1:

在将要返回的代码设置为 FORBIDDEN (407) 时,前端正确显示 407 错误。现在,在将代码设置回 OK (200) 时,前端也正确反映了这一点。

场景 2:

在将要返回的代码设置为 GONE (410) 时,前端正确显示 410 错误。但是,在将代码设置回 OK (200) 时,前端没有正确反映更改,而是继续显示错误 410。

事实上,即使停止服务器后,前端并没有显示net::ERR_CONNECTION_REFUSED错误,而是继续显示410。

有什么解释吗?

【问题讨论】:

    标签: java angular http http-status-code-410


    【解决方案1】:

    使用HTTP response status 410时要小心,因为它会被缓存在浏览器中,以表明目标资源不再可从原始服务器获得并且将不再可用 strong>.(这由服务器端决定)。请参阅 details

    因为410响应时由服务器端确定过期时间,所以浏览器会简单地缓存它,下次你尝试请求相同的资源时,浏览器不会触发请求,直到它过期。这有助于防止无用的请求。

    【讨论】:

    • 谢谢!第一次出现这种情况,几分钟后就解决了。但是,现在仍然显示410错误(很久以来)。清除浏览器的缓存会解决这个问题吗?有没有其他方法可以解决?
    • @RahulSaha 您是否尝试过重新启动您的 Angular 应用程序,也许您还需要清除浏览器缓存并重新启动浏览器。
    • 清除缓存成功! (此外,我从 chrome 中清除了缓存,但它没有反映在我的本地文件夹中,C:\Users\u1\AppData\Local\Google\Chrome\User Data\Default\Cache, - 知道为什么吗?跨度>
    • 好回答先生!
    猜你喜欢
    • 2012-12-12
    • 2017-10-10
    • 2021-06-05
    • 2012-01-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-16
    • 1970-01-01
    相关资源
    最近更新 更多