【问题标题】:Failed to fetch for application/octet-stream for small subset of users未能为一小部分用户获取应用程序/八位字节流
【发布时间】:2022-10-04 16:43:39
【问题描述】:

我有两个版本的 API,可以通过功能标志进行切换。 (一个返回application/json,另一个返回application/octet-stream

当我启用功能标志以使用新的application/octet-stream 时,他们收到failed to fetch 的API 似乎有一小部分用户。 octet-stream API 工作且没有相同浏览器版本和操作系统的用户。不同的用户有相同的浏览器版本和操作系统。

这是我为这两个 API 发送的请求标头。

  "headers": {
    "accept": "*/*",
    "accept-language": "en-US,en;q=0.9",
    "authorization": "...",
    "content-type": "application/json",
    "sec-ch-ua": "\".Not/A)Brand\";v=\"99\", \"Google Chrome\";v=\"103\", \"Chromium\";v=\"103\"", // They would be using Chrome and it might be v102
    "sec-ch-ua-mobile": "?0",
    "sec-ch-ua-platform": "// I believe this would be Windows 10",
    "sec-fetch-dest": "empty",
    "sec-fetch-mode": "cors",
    "sec-fetch-site": "same-site",
  },
  "referrer": "...",
  "referrerPolicy": "no-referrer-when-downgrade",
  "body": "...",
  "method": "POST",
  "mode": "cors",
  "credentials": "include"

这是来自日志的错误(类似于没有连接但服务器收到请求并且其他 API 似乎根据日志正确返回的错误)

  "error": {
        "message": "Failed to fetch",
        "name": "TypeError",
        "stack": "TypeError: Failed to fetch\n (...the chunks it failed at)"
    },

有谁知道可能导致此问题的原因是什么?我是否缺少请求或响应标头,例如更改接受编码?还是可能是公司防火墙?

【问题讨论】:

  • 分享完整的错误以及导致它的 HTTP 请求和响应
  • 啊,我刚刚添加了更多细节
  • 仍然需要所有细节。该错误是一种改进,但即使是错误本身仍有部分缺失。
  • 不幸的是,这就是我可以从这个臭名昭著的Failed to fetch 错误中得到的所有细节。除非您有关于如何从该错误中获取更多详细信息的想法?我可以添加更多日志记录。在网上看,当用户没有互联网连接等时,这似乎可以回来,但除此之外没有其他细节。但我知道用户有互联网连接,因为其他 API 工作正常。
  • 是的,如果您还没有自己复制它,请尝试记录更多。这里没有很多工作要做。我尝试根据部分错误进行谷歌搜索,但运气不佳。发生这种情况时获取完整的请求和响应。

标签: http browser http-headers octet-stream


【解决方案1】:

我有同样的问题。造成这种情况的主要原因 - Chrome 目录所在的磁盘上有可用空间。查看详情https://stackoverflow.com/questions/10988569/storage-limits-on-chrome-browser,

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-15
    • 2011-04-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-21
    相关资源
    最近更新 更多