【发布时间】:2022-03-15 23:33:42
【问题描述】:
我们发现我们的 .fetch 命令偶尔会返回 404。即使文件存在并且经常被命中,有时它也会收到 404。
window.fetch('/category/somepage', {
credentials: 'same-origin',
method: 'POST',
headers: {
'Accept': 'application/json',
'Content-Type': 'application/json'
},
body: JSON.stringify(app.addAntiForgeryToken(postData))
})
.then(function(response) {
if (response.ok) {
return response.json();
}
throw new Error('Network response was not ok');
})
.then(result => {
if (result.Status === 'OK') {
//...
}
})
目前它正被throw new Error捕获。
由于我们需要解决此问题,在点击页面之前强制重试此问题的最佳方法是什么?我们应该显示一个重试按钮还是有办法循环这个?我不确定为什么这甚至会抛出 404,因为文件肯定一直存在。
【问题讨论】:
-
一开始你是如何确定它实际上是 404 的?
-
控制台显示404s
-
您是否检查过服务器端以了解为什么会发生这种情况?也许这故意用 404 响应,表示没有找到给定搜索查询的结果(?)或类似的东西。
-
是的,这确实很奇怪。这是我们刚刚点击的静态页面,我们知道它存在并且一直存在。只是有时它是404s。我们将调查服务器端,看看是否也有任何发现。
标签: javascript fetch-api