Je suis relativement nouveau dans JavaScript/TypeScript (j'apprends encore) et j'ai essayé de faire des requêtes en utilisant fetch et axios, mais je rencontre des problèmes de connectivité réseau. L'erreur que je reçois est :
cause: AggregateError at internalConnectMultiple (node:net:1102:18) at internalConnectMultiple (node:net:1161:5) at Timeout.internalConnectMultipleTimeout (node:net:1644:3) at listOnTimeout (node:internal/timers:575:11) at process.processTimers (node:internal/timers:514:7) { code: 'ENETUNREACH', [errors]: [ Error: connect ENETUNREACH 2001:67c:4e8:f004::9:443 - Local (undefined:undefined) at internalConnectMultiple (node:net:1160:40) at Timeout.internalConnectMultipleTimeout (node:net:1644:3) at listOnTimeout (node:internal/timers:575:11) at process.processTimers (node:internal/timers:514:7) { errno: -101, code: 'ENETUNREACH', syscall: 'connect', address: '2001:67c:4e8:f004::9', port: 443 } ] } } Node.js v20.3.1
Je pense que le code est inutile, utilisez simplement axios({"url": "https://example.com"})
.
La vitesse du réseau est lente et instable, mais je peux accéder à Internet. Ces requêtes fonctionnent très bien avec d'autres utilitaires tels que curl ou des requêtes en Python (essayez d'abord d'utiliser les deux), ce qui exclut tout problème avec mon ordinateur ou la configuration de mon réseau.
fetch et axios fonctionnent tous les deux, mais je suis obligé de réessayer (jusqu'à 200 fois) jusqu'à ce qu'il décide de fonctionner. J'ai essayé de passer { timeout: 0 }
和 { timeout: 5000 }
au constructeur axios sans succès.
J'ai aussi essayé ceci mais rien ne semble fonctionner :
const source = CancelToken.source(); const timeout = setTimeout(() => { source.cancel(); }, 10000); axios.get(ip + '/config', {cancelToken: source.token}).then((result) => { clearTimeout(timeout); // ... });
axios.get('/foo/bar', { signal: AbortSignal.timeout(5000) //Aborts request after 5 seconds }).then(function(response) { // ... });
Vous pouvez utiliser l'une des options de configuration de
timeout
属性作为可传递给axios
.https://axios-http.com/docs/req_config
Vous pouvez également modifier sa valeur par défaut au lieu d'utiliser l'attribut
timeout
à chaque fois :https://axios-http.com/docs/config_defaults