debug: Ajout de timeout et logs détaillés pour diagnostiquer le problème de réseau
- Ajout d'un timeout de 10 secondes avec AbortController - Logs détaillés du début de la requête fetch - Headers explicites pour la requête - Gestion d'erreur spécifique pour les timeouts - Logs du parsing JSON Fixes: Diagnostic du problème de requête qui ne retourne jamais
This commit is contained in:
parent
41dc846f9a
commit
177792929f
@ -106,8 +106,23 @@ export async function getFolderResults(folderHash: string): Promise<FolderRespon
|
|||||||
console.log(`[API] URL: ${API_BASE_URL}/folders/${folderHash}/results`)
|
console.log(`[API] URL: ${API_BASE_URL}/folders/${folderHash}/results`)
|
||||||
|
|
||||||
try {
|
try {
|
||||||
const response = await fetch(`${API_BASE_URL}/folders/${folderHash}/results`)
|
// Créer un AbortController pour gérer le timeout
|
||||||
|
const controller = new AbortController()
|
||||||
|
const timeoutId = setTimeout(() => {
|
||||||
|
console.log(`[API] Timeout après 10 secondes`)
|
||||||
|
controller.abort()
|
||||||
|
}, 10000)
|
||||||
|
|
||||||
|
console.log(`[API] Début de la requête fetch...`)
|
||||||
|
const response = await fetch(`${API_BASE_URL}/folders/${folderHash}/results`, {
|
||||||
|
signal: controller.signal,
|
||||||
|
headers: {
|
||||||
|
'Accept': 'application/json',
|
||||||
|
'Content-Type': 'application/json'
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
clearTimeout(timeoutId)
|
||||||
console.log(`[API] Réponse reçue:`, response.status, response.statusText)
|
console.log(`[API] Réponse reçue:`, response.status, response.statusText)
|
||||||
console.log(`[API] Headers:`, Object.fromEntries(response.headers.entries()))
|
console.log(`[API] Headers:`, Object.fromEntries(response.headers.entries()))
|
||||||
|
|
||||||
@ -116,12 +131,17 @@ export async function getFolderResults(folderHash: string): Promise<FolderRespon
|
|||||||
throw new Error(`Erreur lors de la récupération des résultats du dossier: ${response.statusText}`)
|
throw new Error(`Erreur lors de la récupération des résultats du dossier: ${response.statusText}`)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
console.log(`[API] Début du parsing JSON...`)
|
||||||
const data = await response.json()
|
const data = await response.json()
|
||||||
console.log(`[API] Données reçues:`, data)
|
console.log(`[API] Données reçues:`, data)
|
||||||
console.log(`[API] Nombre de résultats:`, data.results?.length || 0)
|
console.log(`[API] Nombre de résultats:`, data.results?.length || 0)
|
||||||
|
|
||||||
return data
|
return data
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
|
if (error.name === 'AbortError') {
|
||||||
|
console.error(`[API] Requête annulée (timeout)`)
|
||||||
|
throw new Error('Timeout: La requête a pris trop de temps')
|
||||||
|
}
|
||||||
console.error(`[API] Erreur lors de l'appel API:`, error)
|
console.error(`[API] Erreur lors de l'appel API:`, error)
|
||||||
throw error
|
throw error
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user