IE non funziona con localhost + porta


25

Ho un server NodeJS in esecuzione sul mio computer locale per scopi di sviluppo. Per impostazione predefinita, utilizza la porta 1337. (Ho provato una manciata di altre porte come 8080, 1234, 9000, 9090, 65432 e altri).

Posso collegarmi con successo a questo server NodeJS da Chrome, Firefox e Opera. Ma quando provo a connettermi con Internet Explorer 11, vedo "Impossibile visualizzare questa pagina" (vedi immagine).

inserisci qui la descrizione dell'immagine

Ho provato una varietà di "soluzioni" e ho visto diverse domande / risposte su questo sito. Nessuno di loro ha funzionato. Compreso:

  • Ho provato 127.0.0.1
  • Ho disabilitato "Modalità protetta" e "Modalità protezione avanzata".
  • Ho aggiunto "localhost" a Intranet Zone e Trusted Zone.
  • Ho disabilitato "Messaggi HTTP amichevoli" sperando di vedere maggiori dettagli.
  • Ho provato a usare il nome della mia macchina e il nome DNS.
  • Ho provato a creare una voce manuale nel mio file hosts per "localhost" e persino "thisismyfrigginpc" usando il mio indirizzo IPv4.

L'unico successo che ho avuto è quando il server funziona alla porta 80 ( http://localhost:80/o http://localhost). Tuttavia, non posso sviluppare sulla porta 80 per una serie di motivi. Ho bisogno di testare il mio codice su localhost + porta (alcune porte, qualsiasi porta diversa da 80 e 443).

Domande e risposte che non aiutano:

Per favore aiuto!

A proposito, con Windows 7 Enterprise a 64 bit. Distribuzione aziendale, ma ho i diritti di amministratore. La configurazione di rete è piuttosto standard DHCP senza NAT e senza proxy.

AGGIORNARE

Su consiglio di @codenoire, ho installato Fiddler per vedere la richiesta / risposta. Di seguito sono riportate le richieste e le risposte non elaborate da IE-a-Fiddler-to-server-to-Fiddler:

Richiesta

GET http://localhost:1337/common/test.html HTTP/1.1
Accept: text/html, application/xhtml+xml, */*
Accept-Language: en-US
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like Gecko
Accept-Encoding: gzip, deflate
Connection: Keep-Alive
Host: localhost:1337

Risposta

HTTP/1.1 200 OK
Set-Cookie: _session=WRuVLmrXMtjnDJY8;expires=Wed, 15 Jan 2014 23:19:16 GMT;path=/;domain=;httponly
Content-Type: text/html;charset=utf-8
Last-Modified: 1389818856000
Date: Wed, 15 Jan 2014 22:19:16 GMT
Connection: keep-alive
Content-Length: 128

<html>
<head>
    <title>Connectivity Test Page</title>
</head>

<body>

<h1>This is a test page.</h1>

</body>

</html>

Risultato

inserisci qui la descrizione dell'immagine

Aggiornamento 17-01-2014

Ho testato questo scenario su installazioni "pulite" di Windows 7 non aziendali con IE 11. I risultati sono identici alle mie osservazioni permanenti. Ciò significa che qualsiasi configurazione effettuata da un'immagine aziendale di Windows può essere eliminata come causa. Inoltre, la configurazione della rete è abbastanza "vaniglia".

Aggiornamento 21/01/2014

Ho provato le idee di "emulazione" di Internet Explorer. Ho creato una chiave "iexplorer.exe" come valori DWORD e QWORD (singolarmente) con i valori 8000, 8001, 9000, 9001, 10000, and 10001. Dopo ciascuno, riavviato e testato di nuovo. Tutti questi tentativi hanno prodotto gli stessi risultati. A parte, dobbiamo testare questo codice in IE11. I vari trucchi e codici di compatibilità non ci aiutano a lungo termine.

Aggiornamento 22-01-2014

È stato attivato un server XAMPP Apache sulla porta 1337. IE si collega correttamente. Quindi, c'è qualcosa nella risposta di NodeJS che a IE non piace e che gli altri browser sembrano gestire bene. Investigheremo il nostro codice NodeJS per vedere cosa succede esattamente nelle intestazioni / nei contenuti per vedere se qualcosa è fuori linea.

Aggiornamento 2014-01-27: Risoluzione

Volevo solo documentare i risultati. La risposta originale includeva Content-Type: text/html;charset=utf-8e in base alla risposta corretta, dovrebbe essere: Content-Type: text/html; charset=utf-8con uno spazio tra il tipo e il set di caratteri.

Ecco i risultati:

inserisci qui la descrizione dell'immagine

Risposta non elaborata:

HTTP/1.1 200 OK
Set-Cookie: _session=EshWS7xDnCeV9pXS;expires=Mon, 27 Jan 2014 18:49:21 GMT;path=/;domain=;httponly
Date: Mon, 27 Jan 2014 17:49:21 GMT
Last-Modified: 1389818856000
Content-Type: text/html; charset=UTF-8
Content-Length: 128
Connection: keep-alive

<html>
<head>
    <title>Connectivity Test Page</title>
</head>

<body>

<h1>This is a test page.</h1>

</body>

</html>

Grazie a @harrymc per aver scoperto la risposta.


1
Vota per gli screenshot.
Oxymoron,

prima di tutto, annulla la maggior parte delle cose che hai provato, in particolare l'aggiunta alla zona Intranet. se hai intenzione di aggiungerlo a una zona, utilizza i siti attendibili.
Frank Thomas,

@FrankThomas Grazie per avermelo ricordato. L'ho provato senza successo. Ho modificato la mia domanda per riflettere ciò.
Mawcsco,

Potresti per favore pubblicare le tue impostazioni di bind?
Vanadis,

@Vanadis bind-settings? Puoi chiarire?
Mawcsco,

Risposte:


9

L'articolo WWW3 L' impostazione del parametro charset HTTP specifica:

Content-Type: text/html; charset=utf-8

Questo definisce Content-Typecome avere uno spazio vuoto prima charset.

So che hai già scoperto che questo è davvero il problema, quindi la fonte del problema è una programmazione molto priva di fantasia da parte di Microsoft o di un proxy intermedio.


1) L'uso del nome della macchina non risolve la situazione. 2) Ho già usato Fiddler e ho incluso i risultati nel mio post. 3) Wireshark + pcap non può catturare su localhost. Ho usato RawCap + Wireshark e i risultati erano identici a Fiddler.
Mawcsco,

Per identico, intendevo dire che i pacchetti decodificati erano praticamente uguali.
Mawcsco,

Non mi sono "arreso" su Fiddler. Funziona bene e ottengo gli stessi "risultati": Chrome, Firefox, Opera si connettono bene, IE no. Ho pubblicato la risposta alla richiesta non elaborata e decodificata e tutto sembra normale / corretto e tuttavia IE non riesce a visualizzare la pagina.
mawcsco,

Che consiglio è quello? Ho già provato il nome della macchina. Lo dice il mio post. Il certificato radice Fiddler è necessario solo per effettuare connessioni SSL; Non ne ho bisogno (e non riesco a vedere come questo possa aiutare.) Ho già provato Wireshark, non rivela nulla di nuovo. Fiddler ha dimostrato con successo che la richiesta / risposta del server va bene, cosa che ho dedotto vedendo che ogni altro browser funzionava bene. SOLO IE si comporta in modo diverso.
Mawcsco,

Sì, "cogliere le cannucce" è esattamente come ci si sente. Sono alla fine del mio ingegno. Controllo dell'account utente è già disabilitato, nessun aiuto lì. Sto esaminando il problema dello spazio dei set di caratteri, ma non ho idea di come ci riuscirò. Ci sto esaminando.
Mawcsco,

3

Probabilmente c'è un problema nelle tue impostazioni per IE.

Il modo più semplice per risolvere questo problema sarebbe aprire Opzioni Internet, andare alla scheda avanzata e fare clic su "Ripristina impostazioni di Internet Explorer". Assicurati di sceglierlo e non "Ripristina impostazioni avanzate", poiché questo non comprende TUTTE le impostazioni.

Se non funziona, prova anche a navigare utilizzando 127.0.0.1 invece di localhost. Questo non è probabile che risolva il problema, ma a volte potrebbe creare un problema.

Modifica: volevo aggiungere che questo potrebbe essere un problema con IE11. So che abbiamo avuto molti problemi di compatibilità con esso. Se non si desidera eseguire il rollback su IE10 e provarlo, è sempre possibile emulare dal registro:

Sotto

HKLM\SOFTWARE\Microsoft\Internet Explorer\MAIN\FeatureControl\

creerai una chiave chiamata:

FEATURE_BROWSER_EMULATION

e al suo interno, crea un valore DWORD:

iexplorer.exe

con un valore di uno dei seguenti:

 IE8 - 8000 (or 8001)
 IE9 - 9000 (or 9001)
 IE10 - 10000 (or 10001)

Abbiamo avuto il massimo successo con 10001.


Ho già provato questo su diverse macchine, una manciata delle quali aveva una "nuova" installazione di Windows e IE.
Mawcsco,

Hai eseguito IE con componenti aggiuntivi disabilitati? So che hai detto che era una nuova installazione, ma a volte viene preimballato con gonfio.
WreithKassan,

Ancora una volta, una nuova installazione di Windows e IE. Nessun componente aggiuntivo installato.
Mawcsco,

Il mio post originale afferma già che ho provato 127.0.0.1. Proverò il trucco "emulazione".
Mawcsco,

Ok, nessuno dei valori di emulazione del browser in questa risposta funziona.
Mawcsco,

1

Controlla le impostazioni del proxy. Dato che sei su una rete aziendale, qualcuno potrebbe avere una politica proxy inadeguata inserita nel tuo IE (che non rispecchierà necessariamente gli altri browser).


Sicuramente nessun proxy in corso qui. Non usiamo nemmeno NAT. Aggiornato di conseguenza la mia domanda.
Mawcsco,

Detto questo, collega il tuo browser con Fiddler e vedi cosa potrebbe succedere sotto il cofano. Prova alcuni siti che funzionano, quindi prova localhost e guarda la visualizzazione del traffico. Meglio che posso raccomandare. fiddler2.com
Xavier J,

Quindi, Fiddler introduce un proxy. Ora, in IE, vedo: "Il server proxy non risponde". Tuttavia, la richiesta / risposta in Fiddler mostra che tutto è ok. Il server ha risposto con le intestazioni e il contenuto HTML previsti. Ma non è quello che vedo in IE.
Mawcsco,

-1

Apporto queste modifiche e tutto funziona benissimo su Windows 10 64 bit.

inserisci qui la descrizione dell'immagine

inserisci qui la descrizione dell'immagine


1
Non credo che questo risolverà il problema dei PO, che è stato confermato come una risposta HTTP di tipo Cntent non valida.
DavidPostill
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.