Rumah > Soal Jawab > teks badan
Saya agak baru dalam JavaScript/TypeScript (masih belajar) dan telah cuba membuat permintaan menggunakan fetch dan axios tetapi menghadapi masalah sambungan rangkaian. Ralat yang saya terima ialah:
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
Saya rasa kod itu tidak perlu, gunakan sahaja axios({"url": "https://example.com"})
.
Kelajuan rangkaian adalah perlahan dan tidak stabil, tetapi saya boleh mengakses internet. Permintaan ini berfungsi dengan baik dengan utiliti lain seperti curl atau permintaan dalam Python (cuba menggunakan kedua-duanya), supaya menolak sebarang masalah dengan konfigurasi komputer atau rangkaian saya.
fetch dan axios kedua-duanya sebenarnya berfungsi, tetapi saya terpaksa terus mencuba semula (sehingga 200 kali) sehingga ia memutuskan untuk berfungsi. Saya cuba menghantar { timeout: 0 }
和 { timeout: 5000 }
kepada pembina axios tetapi tidak berjaya.
Saya juga mencuba ini tetapi nampaknya tiada kesan:
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) { // ... });
P粉8141609882023-09-07 10:18:52
Anda boleh menggunakan salah satu pilihan konfigurasi timeout
属性作为可传递给 axios
.
https://axios-http.com/docs/req_config
Anda juga boleh menukar nilai lalainya dan bukannya menggunakan atribut timeout
setiap kali:
const instance = axios.create(); instance.defaults.timeout = 2500;
https://axios-http.com/docs/config_defaults