Подтвердить что ты не робот

Не удалось загрузить ресурс: net:: ERR_CONTENT_LENGTH_MISMATCH

Что означает это сообщение об ошибке и как его разрешить? То есть с консоли Google Chrome v33.0, на Windows 7.

Не удалось загрузить ресурс: net:: ERR_CONTENT_LENGTH_MISMATCH           http://and.img.url/here.png

Я пытаюсь изменить атрибут src изображений с помощью jQuery. Например, например (упрощенное):

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

На странице имеется около 30 изображений. И вышеупомянутая ошибка происходит для случайных изображений каждый раз, когда я перезагружаю страницу. Но иногда он хорошо работает для всех изображений без ошибок.

При возникновении этой ошибки конкретное изображение отображается как this:

enter image description here

Однако, когда я открываю ссылку рядом с сообщением об ошибке на новой вкладке, изображение загружается, что говорит мне логически, что изображения действительны и существуют.

4b9b3361

Ответ 1

Эта ошибка представляет собой определенное несоответствие между данными, которые рекламируются в заголовках HTTP, и данными, передаваемыми по кабелю.

Это может произойти из следующего:

  • Сервер. Если на сервере имеется ошибка с некоторыми модулями, которые изменяют содержимое, но не обновляют длину содержимого в заголовке или просто не работают должным образом. В какой-то момент это имело место для прокси-сервера Node HTTP (см. здесь)

  • Прокси. Любой прокси-сервер между вами и вашим сервером может изменять запрос и не обновлять заголовок длины содержимого.

Насколько я знаю, я не вижу этих проблем в IIS, но в основном с пользовательским письменным кодом.

Сообщите мне, если это поможет.

Ответ 2

Это может быть вызвано вашим блокировщиком рекламы.

Попробуйте отключить его или добавить исключение для домена, из которого происходят изображения.

Ответ 3

Docker + nginx

В моей ситуации проблема заключалась в дисковом пространстве контейнера док-станции nginx. У меня было 10 ГБ журналов, и когда я уменьшаю эту сумму, это работает.

Шаг за шагом (для новичков/новичков)

  1. Введите в свой контейнер: docker exec -it container_id bash.

  2. Перейдите в ваши журналы, например: /var/log/nginx.

  3. [опционально] Показать размер файла: ls -lh для отдельного размера файла или du -h для размера папки.

  4. Пустой файл/ы с > file_name.

  5. Оно работает!.

Для продвинутых разработчиков/системных администраторов

Очистите журнал nginx с помощью > file_name или аналогичного.

Надеюсь, поможет

Ответ 4

Это может быть вызвано полным диском (Ubuntu/Nginx).

Моя ситуация:

  • эта ошибка произошла в Chrome с Nginx, обслуживающим статический файл: ".../static/js/vendor.c4ed7962fb4a63ad3c3b.js net :: ERR_CONTENT_LENGTH_MISMATCH 200 (OK)"
  • корневой диск был заполнен; после очистки файлов tmp ошибка исчезла.
  • для предотвращения: убедитесь, что ваш диск остается чистым (такой скрипт может помочь: https://crunchify.com/how-to-automatics-delete-tmp-folders-in-linux-automatic-disk-log-cleanup- bash-script/)

Ответ 6

В моем случае я просчитал Content-Length, который я рекламировал в заголовке. Я подавал запросы диапазона для файлов, и я ошибочно опубликовал размер файла в Content-Length.

Я исправил проблему, установив Content-Length в фактический диапазон, который я отправлял обратно в браузер.

Поэтому, если я отвечаю на обычный запрос, я устанавливаю Content-Length в размер файла. В случае, если я отвечаю на запрос диапазона, я устанавливаю Content-Length на фактическую длину запрошенного диапазона.

Ответ 7

В моем случае это была проблема с прокси-сервером (запросы от nginx, передаваемые в кэш-память), которая вызвала проблему. Мне нужно было добавить следующее в мое определение прокси

        proxy_set_header Connection keep-alive; 

Я нашел ответ здесь: fooobar.com/questions/708759/...

Ответ 8

Если это связано с докером, попробуйте остановить ошибочный контейнер и запустить новый контейнер с помощью команды docker run из того же образа.