Tou*_*uki 14 javascript ajax google-chrome http-status-codes
在项目上工作,我只是发出一个AJAX请求来处理一些数据.
完成作业后,服务器将返回HTTP 205 RESET CONTENT响应
我使用此状态代码告诉请求者重置文档视图
这是我使用的代码片段
$.ajax({
url: '/unread',
method: 'PUT',
data: {
notifications: elements
}
}).done(function(content, message, xhr) {
if (205 !== xhr.status) {
// Generic error message
return;
}
window.location.reload(true)
}).fail(function() {
// Generic error message
})
Run Code Online (Sandbox Code Playgroud)
这适用于Internet Explorer (8及以上版本),Firefox (28.0)和Opera (12.16).但是Chrome (33.0)和Opera (20.0)不是刷新页面,而是在调用时下载正在重新加载dump的页面的响应内容window.location.reload
这是我尝试过的
window.location.href = window.location.href 给出相同的结果history.go(0) 给出相同的结果window.location.reload,则不会重新加载任何内容这是正在发生的事情的视觉网络

附加信息(以及更深入的调查)
为什么Chrome和Opera在205HTTP响应中的行为如此?
我能找到的最接近的是它可能是一个错误,因为在这个文件中: https: //chromium.googlesource.com/chromium/chromium/+/trunk/net/http/http_stream_parser.cc
从第 837 行开始的注释与第 850 行的代码不匹配:即注释没有提到 205 的长度必须为零,但代码将 205 视为 1xx、204 和 304。这实际上是唯一的眨眼我可以找到提到的代码 205(除了定义常量之外)。
也许也值得尝试最新的 Opera 版本;如果问题也发生在那里,则更强烈地表明 Blink 源代码中存在错误。
| 归档时间: |
|
| 查看次数: |
929 次 |
| 最近记录: |