web-dev-qa-db-fra.com

Impossible de charger la ressource: net :: ERR_CONTENT_LENGTH_MISMATCH

Que signifie ce message d'erreur et comment puis-je le résoudre? C’est à partir de la console de Google Chrome v33.0, sous Windows 7.

Impossible de charger la ressource: net :: ERR_CONTENT_LENGTH_MISMATCH http: //and.img.url/here.png

J'essaie de changer l'attribut src des images à l'aide de jQuery. Par exemple, comme ceci (simplifié):

$('.image-prld').attr('src', someDynamicValue);

Il y a environ 30 images sur la page. Et l'erreur ci-dessus se produit pour des images aléatoires chaque fois que je recharge la page. Mais parfois, cela fonctionne bien pour toutes les images, sans aucune erreur.

Lorsque cette erreur se produit, l’image particulière s’affiche comme this :

enter image description here

Cependant, lorsque j'ouvre le lien en regard du message d'erreur sur un nouvel onglet, l'image se charge, ce qui me dit logiquement que les images sont valides et qu'elles existent.

39
user3332579

Cette erreur est une incompatibilité absolue entre les données publiées dans les en-têtes HTTP et les données transférées sur le réseau.

Cela pourrait venir de ce qui suit:

  1. Serveur : Si un serveur a un bogue avec certains modules, il modifie le contenu mais ne met pas à jour la longueur du contenu dans l'en-tête ou ne le fait pas travaille correctement. Ce fut le cas pour le Node HTTP Proxy à un moment donné (voir ici )

  2. Proxy : Tout proxy entre vous et votre serveur peut modifier la demande et ne pas mettre à jour l'en-tête de la longueur du contenu.

Autant que je sache, je ne vois pas ce problème dans IIS mais principalement avec du code écrit personnalisé.

Faites-moi savoir si cela vous a été utile.

30
Maxime Rouiller

Cela pourrait même être causé par votre bloqueur de publicité .

Essayez de le désactiver ou d'ajouter une exception pour le domaine d'où proviennent les images.

26
Joe Valeriana

Docker + nginx

Dans ma situation, le problème était l’espace disque du conteneur nginx docker. J'ai eu 10 Go de journaux et lorsque je réduis ce montant, cela fonctionne.

Pas à pas (pour les débutants/noobs)

  1. Entrez dans votre conteneur: docker exec -it conteneur_id bash.

  2. Accédez à vos journaux, par exemple:/var/log/nginx.

  3. [facultatif] Afficher la taille du fichier: ls -lh pour la taille de fichier individuelle ou du -h pour la taille du dossier.

  4. Fichier/s vide avec > file_name.

  5. Ça marche!.

Pour les développeurs/administrateurs système avancés

Videz votre journal nginx avec > file_name ou similaire.

J'espère que ça aide

20
mrroot5

Cela peut être causé par un disque complet (Ubuntu/Nginx).

Ma situation:

1
vdB

Dans mon cas, je calculais mal la longueur de contenu annoncée dans l'en-tête. Je servais des demandes de plage pour les fichiers et j'ai publié par erreur la taille du fichier dans Content-Length.

J'ai résolu le problème en définissant Content-Length sur la plage que je renvoyais au navigateur.

Donc, si je réponds à une requête normale, je règle Content-Length à la taille du fichier. Si je réponds à une demande d'intervalle, je règle Content-Length sur la longueur réelle de l'intervalle demandé.

0
Tobias Gassmann

Dans mon cas, c’était un problème de proxy (demandes envoyées par proxy de nginx à un cache de vernis) qui était à l’origine du problème. J'avais besoin d'ajouter ce qui suit à ma définition de proxy

        proxy_set_header Connection keep-alive; 

J'ai trouvé la réponse ici: https://stackoverflow.com/a/55341260/1062129

0
George

Dans mon cas, je modifiais la demande pour ajouter un en-tête (à l'aide de Fiddler ) à une demande https, mais je ne l'ai pas configurée pour déchiffrer le trafic https. =

0
The Red Pea