2014-04-06 11 views
32

Ho un'app che funziona bene localmente, ma barfs in produzione. (Problema classico, vero?)Javascript che non carica a causa della rete :: ERR_CONTENT_LENGTH_MISMATCH

Nella produzione, il JS non sta sparando correttamente. Quando apro la console del browser, vedo questo errore:

net::ERR_CONTENT_LENGTH_MISMATCH

Quando guardo nella scheda di rete di strumenti di sviluppo, è dimostra che non è riuscito su una richiesta GET per il text/html.

È un errore criptico. Ho trovato solo altri due post SO che menzionano e sono irrisolti. (Per gli interessati: first post e second post)

Qualche idea (1) che cosa significa o (2) come risolverlo?

risposta

6

In base a this bug report, questo errore si verifica quando una lunghezza di risorsa esterna non corrisponde all'intestazione Content-Length fornita nella risposta.

Questo potrebbe verificarsi a causa di un server configurato in modo errato o (come estensione) forse alcuni caratteri della distinta componenti sono stati inseriti nel file, o forse anche terminazioni di linee diverse (stai scrivendo su una macchina DOS e distribuendola su una macchina UNIX?) potrebbe causare problemi.

Spero che questo aiuti.

+0

Risposta precedente, ma scrivo in node.js (utilizzando express.js) su Windows, e da quando ho spostato il codice su un server Ubuntu, ho riscontrato questo problema con diversi file di contenuto (non sono sicuro quale sia la causa del problema). L'uso di dos2unix ha risolto il problema per me. – matth

33

I am getting Error: net::ERR_CONTENT_LENGTH_MISMATCH

Dai un'occhiata ai log del tuo server per determinare qual è il vero problema.

Per me il problema era da qualche parte tra nginx e di file permesso:

  • tail -f /usr/local/var/log/nginx/error.log o eseguire nginx -t per determinare la posizione conf, in cui è possibile specificare un percorso di log personalizzato.
  • aggiornare la risorsa nel proprio browser, ad esempio http://localhost:3000/assets/jquery/jquery.js

Si può vedere qualcosa di simile nei log:

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

Ecco come ho risolto:

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

Nel mio caso Nginx era in esecuzione come proxy inverso e ho semplicemente eseguito lo spazio su disco. Uno sguardo ai log di Nginx era sufficiente. Grazie. –

+1

Questo ha risolto anche il mio problema per ottenere "net :: ERR_INCOMPLETE_CHUNKED_ENCODING" in cui il mio server di nodi stava tagliando il flusso del file in breve. –

+1

Risolto anche per me. Stavo ricevendo ERR_CONTENT_LENGTH_MISMATCH quando provavo ad accedere direttamente a un'immagine come: http://url.to/assets/image.png. Siamo andati attraverso gli stessi passaggi e dopo aver eliminato la cartella cache, l'errore era sparito. Grazie! – felipecao

1

Ho avuto un problema simile quando si tenta di interpretare i risultati JSON. Si è scoperto che da qualche parte lungo la linea un personaggio strano è atterrato nel database - in questo caso il colpevole era "â ??". Non è chiaro come questo valore sia arrivato nel database, ma è probabilmente correlato a HTML encoding issues - "Â" character showing up instead of " " In entrambi i casi, dopo aver rimosso i caratteri dispari, il problema è stato risolto.

1

ho avuto problema simile [crit] 6889 # 0: * 14817 open() "/ var/cache/nginx/proxy_temp/3/02/0.000.000,023 mila" fallita (13: Autorizzazione negata) durante la lettura monte

era perché il processo di lavoro Nginx non era in grado di accedere alla cartella/var/cache/nginx/proxy_temp/- Ho appena cambiato le autorizzazioni della cartella e tutto ha iniziato a funzionare

+0

Faccio 'sudo chmod -R 777/var/lib/nginx/proxy /' e tutto funziona correttamente. C'è forse qualche problema di sicurezza a riguardo. Qualcun altro può spiegarmelo? –

+0

non impostare 777 ... basta dare il permesso di lettura all'utente che esegue Nginx (potrebbe essere aggiungendolo al gruppo proprietario di quella cartella) – JRomio

Problemi correlati