Je recevais ce message exact chaque fois que mes demandes prenaient plus de 2 minutes pour se terminer. Le navigateur se déconnecterait de la demande, mais la demande sur le backend se poursuivait jusqu'à ce qu'elle soit terminée. Le serveur (API Web ASP.NET dans mon cas) ne détecte pas la déconnexion.
Après une journée entière de recherche, j'ai finalement trouvé cette réponse , expliquant que si vous utilisez la configuration proxy , elle a un délai d'expiration par défaut de 120 secondes (ou 2 minutes).
Ainsi, vous pouvez modifier votre configuration de proxy et la définir comme vous le souhaitez:
{
"/api": {
"target": "http://localhost:3000",
"secure": false,
"timeout": 6000000
}
}
Maintenant, j'utilisais agentkeepalive pour le faire fonctionner avec l'authentification NTLM , et je ne savais pas que le délai d'expiration de l'agent n'a rien à voir avec le délai d'expiration du proxy, donc les deux doivent être définis. Il m'a fallu un certain temps pour m'en rendre compte, alors voici un exemple:
const Agent = require('agentkeepalive');
module.exports = {
'/api/': {
target: 'http://localhost:3000',
secure: false,
timeout: 6000000, // <-- this is needed as well
agent: new Agent({
maxSockets: 100,
keepAlive: true,
maxFreeSockets: 10,
keepAliveMsecs: 100000,
timeout: 6000000, // <-- this is for the agentkeepalive
freeSocketTimeout: 90000
}),
onProxyRes: proxyRes => {
let key = 'www-authenticate';
proxyRes.headers[key] = proxyRes.headers[key] &&
proxyRes.headers[key].split(',');
}
}
};
err
objet entier - pas seulement lemessage