2014-04-06 10 views
32

Mam aplikację, która działa dobrze lokalnie, ale w produkcji barfs. (Klasyczny problem, prawda?)Javascript nie ładuje się z powodu sieci :: ERR_CONTENT_LENGTH_MISMATCH

W produkcji JS nie strzela prawidłowo. Kiedy otworzyć konsolę przeglądarki, widzę ten błąd:

net::ERR_CONTENT_LENGTH_MISMATCH

Kiedy patrzę na karcie sieciowej narzędzi programistycznych, to pokazuje, że nie udało się na żądanie GET dla text/html.

To jest tajemniczy błąd. Znalazłem tylko dwa inne wpisy SO, które nawet wspominają i są nierozwiązane. (Dla zainteresowanych: first post i second post)

Każdy pomysł (1), co to oznacza lub (2) jak go rozwiązać?

Odpowiedz

6

Zgodnie z this bug report, błąd ten występuje, gdy zewnętrzna długość zasobu nie odpowiada nagłówkowi Content-Length podanemu w odpowiedzi.

To może się zdarzyć z powodu nieprawidłowo skonfigurowanego serwera lub (jako rozciągnięcia) może niektóre znaki BOM zostały umieszczone w pliku, lub może nawet różne zakończenia linii (czy piszesz na maszynie DOS i wdrażasz na komputerze z systemem UNIX?) może powodować problemy.

Mam nadzieję, że to pomoże.

+0

Starsza odpowiedź, ale piszę w pliku node.js (przy użyciu wyrażenia express.js) w systemie Windows, a od przeniesienia kodu na serwer Ubuntu doświadczyłem tego problemu z kilkoma plikami zawartości (nie jestem pewien, który spowodował problem). Korzystanie z dos2unix rozwiązało problem dla mnie. – matth

33

I am getting Error: net::ERR_CONTENT_LENGTH_MISMATCH

Zobacz dzienniki serwera, aby ustalić prawdziwy problem.

Dla mnie problem leży gdzieś pomiędzy uprawnieniami nginx i plików:

  • tail -f /usr/local/var/log/nginx/error.log lub uruchomić nginx -t aby określić swoją lokalizację conf, w którym można określić ścieżkę zwyczaj dziennika.
  • odświeżyć zasób w przeglądarce, np http://localhost:3000/assets/jquery/jquery.js

można zobaczyć coś takiego w dziennikach:

"/usr/local/var/run/nginx/proxy_temp/9/04/0000000049" failed (13: Permission denied) while reading upstream for file xyz

Herezje jak ja Poprawiono:

sudo nginx -s stop 
sudo rm -rf /usr/local/var/run/nginx/* 
sudo nginx 
+4

W moim przypadku Nginx działał jako odwrotny serwer proxy i po prostu przebiegł z miejsca na dysku. Wystarczy jedno spojrzenie na dzienniki Nginx. Dzięki. –

+1

To również rozwiązało mój problem z uzyskaniem "net :: ERR_INCOMPLETE_CHUNKED_ENCODING", w którym mój serwer węzłowy skracał strumień plików. –

+1

Rozwiązano także dla mnie. Otrzymałem ERR_CONTENT_LENGTH_MISMATCH podczas próby bezpośredniego dostępu do obrazu, takiego jak: http://url.to/assets/image.png. Po wykonaniu tych samych kroków i usunięciu folderu pamięci podręcznej błąd zniknął. Dzięki! – felipecao

1

miałem podobny problem przy próbie interpretacji wyników JSON. Okazało się, że gdzieś po linii w bazie danych pojawiła się dziwna postać - w tym przypadku winowajcą było "â ??". Nie jest jasne, jak ta wartość dotarła do bazy danych, ale prawdopodobnie jest związana z HTML encoding issues - "Â" character showing up instead of " " Tak czy inaczej, po usunięciu nieparzystych znaków problem został rozwiązany.

1

miałem podobny problem [crit] 6889 # 0: * 14817 open() "/ var/cache/nginx/proxy_temp/3/02/0000000023" nie powiodło się (13: Permission denied) podczas czytania przed

było tak, ponieważ proces roboczy Nginx nie mógł uzyskać dostępu do folderu/var/cache/nginx/proxy_temp/- Właśnie zmieniłem uprawnienia do folderu i wszystko zaczęło działać

+0

Robię "sudo chmod -R 777/var/lib/nginx/proxy /" i wszystko działa poprawnie. Może w tym jest problem z bezpieczeństwem. Czy ktoś może mi to wytłumaczyć? –

+0

Nie konfiguruj 777 ... po prostu daj uprawnienie do odczytu użytkownikowi uruchamiającemu Nginx (może być przez dodanie go do grupy właściciela tego folderu) – JRomio