web-dev-qa-db-fra.com

Safari - Onglet Réseau de l'inspecteur Web - Une erreur s'est produite lors de la tentative de chargement de la ressource.

L'erreur apparaît dans l'image ci-dessous dans les outils de développement de Safari (onglet Réseau) pour XHR/Fetch. Le corps de la réponse n'est pas visible. Il y a toujours le texte rouge "Une erreur s'est produite lors de la tentative de chargement de la ressource". Ma pensée initiale était que l'outil devtool ne prendrait pas en charge l'extraction par opposition à XHR. Mais Safari 12 le supporte.

 example

Système d'exploitation: MacOS High Sierra Navigateur: Safari 12 & Technology Preview 66

Cela at-il quelque chose à voir avec les en-têtes de réponse? XSS ou autre chose? PS: le même corps de réponse est visible dans l'outil de développement de chrome.

15
Ramesh

Sur la droite de la barre de menus avec aperçu, il y a response avec une flèche à côté, cliquez dessus et passez à JSON qui devrait suffire.

2
Yehuda Schwartz

Le message d'erreur du navigateur décrit les conditions requises pour que cette demande se termine avec succès. 

Le serveur doit accorder l'accès à la ressource demandée à votre domaine distant en envoyant un en-tête de réponse Access-Control-Allow-Origin.

Dans Safari 12, sélectionnez la ligne dans l'onglet Réseau. La réponse sera affichée dans la zone principale. Au-dessus, il y aura quelques onglets. Sélectionnez l'onglet En-têtes et examinez la partie requête des données affichées pour obtenir des informations sur la requête. Pour plus de détails sur les données de la demande, consultez la rubrique "Données de la demande". Le cas échéant, il y aura une petite flèche sur laquelle vous pourrez appuyer pour voir le contenu complet de la demande.

1
UnP

Le monde n'est pas prêt pour fetch().

Pour résoudre ce problème, j'ai facilement converti de fetch() en axios .

  • body est devenu data
  • json décodé automatiquement
  • credentials est devenu withCredentials

J'ai également ajouté cette fonction pour déterminer si la réponse était ok:

function ok(resp) {
  return resp && resp.status && resp.status >= 200 && resp.status < 400
}

C'était tout ce dont j'avais besoin pour m'ajuster dans mon cas.

0
jchook