Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/375.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 成功请求后不久发生XMLHTTPRequest网络错误的原因是什么?_Javascript_Xmlhttprequest_Network Programming - Fatal编程技术网

Javascript 成功请求后不久发生XMLHTTPRequest网络错误的原因是什么?

Javascript 成功请求后不久发生XMLHTTPRequest网络错误的原因是什么?,javascript,xmlhttprequest,network-programming,Javascript,Xmlhttprequest,Network Programming,我有一个连接到Sentry的React前端,在过去的几周里,我收到了很多报告,完全随机(不同的用户和不同的设备),错误如下: Error: Network Error at createError(../node_modules/axios/lib/core/createError.js:17:15) at apply(../node_modules/axios/lib/adapters/xhr.js:80:14) at XMLHttpRequest.r(../node_module

我有一个连接到Sentry的React前端,在过去的几周里,我收到了很多报告,完全随机(不同的用户和不同的设备),错误如下:

Error: Network Error
  at createError(../node_modules/axios/lib/core/createError.js:17:15)
  at apply(../node_modules/axios/lib/adapters/xhr.js:80:14)
  at XMLHttpRequest.r(../node_modules/@sentry/browser/esm/helpers.js:87:17)
它在堆栈跟踪中引用的Axios代码:

request.onerror = function handleError() {
  // Real errors are hidden from us by the browser
  // onerror should only fire if it's a network error
  reject(createError('Network Error', config, null, request)); // Clean up request
  request = null;
}; // Handle timeout
我不认为这与Axios有任何关系,因为这表明请求触发了
onerror
事件处理程序,这是XMLHTTPRequest的一部分

更奇怪的是,我经常看到一个成功的API请求在同一个用户之前经过几分钟,然后由于这个错误而失败,然后在几秒钟后用户(大概)刷新时再次工作。当我检查后端(写在节点中)的日志时,我发现大约有一半的时间,我实际上看到请求被记录并通过,而另一半时间,没有迹象表明错误时间戳处的请求曾经发生过。因此,这让我推断,有时,当抛出
网络错误时,请求从未到达我的服务器,有时,即使成功地从我的服务器发送回响应,它也会以某种方式在传输中丢失?我知道这与发生在应用程序层以下的错误有关,因此HTTP 500不会引发此错误

我不明白这怎么会发生。如果有丢失的数据包,TCP重新传输不应该导致重试吗?这不仅仅是一个一次性的错误,在过去的几周里已经发生了20多次

一些注意事项:

  • 一些研究让我认为这与CORS飞行前的情况有关。响应中设置了以下标题:
  • 在后端,“保持活动”设置为
    true

  • 服务器正在Heroku上运行

  • 客户端位于多个不同设备上的多个不同网络上


关于a)为什么在成功的请求通过后几秒钟会发生这种情况,以及b)确定来源的方法,您有什么想法吗?或者这仅仅是一个通常会发生的完全正常的、短暂的错误?

上述方面有什么好运气吗?我在本机windows中遇到此问题
    'Access-Control-Allow-Origin': '*'
    'Access-Control-Allow-Headers': 'X-Requested-With'