我无法理解204 HTTP状态代码的用例.RFC2616说:
10.2.5 204没有内容
服务器已完成请求但不需要返回实体主体,并且可能希望返回更新的元信息.所述
响应可包括以下形式的新的或更新的元信息
实体头,其如果存在的话应该与相关联
请求的变体.如果客户端是用户代理,它不应该从导致请求发送的文档视图中更改它的文档视图.这种反应主要是为了允许操作发生而不引起改变到用户代理的活动文档视图的输入,尽管任何新的或更新的元信息应在用户代理的活动视图当前应用于该文档.
204响应绝不能包含消息体,因此总是在头字段之后的第一个空行终止.
"文档视图"是指DOM吗?
例如,如果我的请求成功完成,我会触发删除用户的AJAX请求并更新我的页面以从列表中删除用户,如果服务器给我200作为响应的{}或没有的请求的204身体 ?
编辑:我主要关心的是"如果客户端是用户代理,它不应该从导致请求发送的文档视图中更改它".部分.用我自己的话来重新表述:如果我返回204,我可以更新DOM吗?
“文档视图”是指 DOM 吗?
不完全是,这意味着呈现的文档。DOM 不是渲染文档的表示。它是文档树的抽象模型。每个 UA 可能会以不同的方式呈现它。
我发出一个 AJAX 请求,删除一个用户,并在我的请求成功完成后更新我的页面以从列表中删除该用户,服务器应该给我一个带有 {} 的 200 作为响应还是一个没有正文的 204?
这取决于 API 以及它的“一致性”。因此,如果您使用“DELETE”动词(因此,它是一个 RESTful API)提交了删除请求,那么响应应该是 200 OK;但如果 API 特别迂腐,它也可以发送 204。
如果您只是向“/some/view?id=1&action=delete”发送 GET 请求,它很可能会返回 200 OK
在任何一种情况下,由于第二部分,您可以自由更改 DOM(从而触发文档的重新渲染):
尽管任何新的或更新的元信息都应该应用于当前在用户代理的活动视图中的文档。
所以,使用来表示记录已被删除就符合这个要求。<strike>
| 归档时间: |
|
| 查看次数: |
16524 次 |
| 最近记录: |