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).
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:
- Perché non riesco a visitare http: // localhost tramite IE?
- Chrome e Firefox possono raggiungere localhost; Internet Explorer 9 non può. Perché?
- Come testare siti locali in Metro IE10?
- /programming/19268956/can-not-access-localhostport
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
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-8
e in base alla risposta corretta, dovrebbe essere: Content-Type: text/html; charset=utf-8
con uno spazio tra il tipo e il set di caratteri.
Ecco i risultati:
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.