Saya memiliki server NodeJS yang berjalan di mesin lokal saya untuk tujuan pengembangan. Secara default, ia menggunakan port 1337. (Saya sudah mencoba beberapa port lain seperti 8080, 1234, 9000, 9090, 65432 dkk).
Saya berhasil menghubungkan ke server NodeJS ini dari Chrome, Firefox, dan Opera. Tetapi, ketika saya mencoba terhubung dengan Internet Explorer 11, saya melihat "Halaman ini tidak dapat ditampilkan" (lihat gambar).
Saya sudah mencoba berbagai "solusi" dan melihat beberapa pertanyaan / jawaban di situs ini. Tak satu pun dari mereka yang bekerja. Termasuk:
- Saya sudah mencoba 127.0.0.1
- Saya telah menonaktifkan "Mode Terlindungi" dan "Mode Perlindungan yang Ditingkatkan."
- Saya telah menambahkan "localhost" ke Zona Intranet dan Zona Tepercaya.
- Saya telah menonaktifkan "Pesan HTTP ramah" dengan harapan dapat melihat lebih detail.
- Saya sudah mencoba menggunakan nama mesin dan nama DNS saya.
- Saya sudah mencoba membuat entri manual di file host saya untuk "localhost" dan bahkan "thisismyfrigginpc" menggunakan alamat IPv4 saya.
Satu-satunya keberhasilan yang saya miliki adalah ketika server berjalan di port 80 ( http://localhost:80/
atau http://localhost
). Namun, saya tidak dapat mengembangkan pada port 80 karena berbagai alasan. Saya perlu menguji kode saya di localhost + port (beberapa port, port apa saja selain 80 dan 443).
Pertanyaan dan jawaban yang tidak membantu:
- Mengapa saya tidak dapat mengunjungi http: // localhost via IE?
- Chrome dan Firefox dapat mencapai localhost; Internet Explorer 9 tidak bisa. Mengapa?
- Bagaimana cara menguji situs lokal di Metro IE10?
- /programming/19268956/can-not-access-localhostport
Tolong bantu!
BTW, Menjalankan Windows 7 Enterprise 64-bit. Penempatan perusahaan, tetapi saya memiliki hak admin. Konfigurasi jaringan adalah DHCP standar yang cantik tanpa NAT dan tanpa Proxy.
MEMPERBARUI
Atas rekomendasi dari @codenoire, saya menginstal Fiddler untuk melihat permintaan / respons. Berikut adalah permintaan dan tanggapan mentah dari IE-to-Fiddler-to-server-to-Fiddler:
Permintaan
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
Tanggapan
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>
Hasil
Pembaruan 2014-01-17
Saya telah menguji skenario ini pada instalasi Windows 7 non-perusahaan "bersih" dengan IE 11. Hasilnya identik dengan pengamatan saya saat ini. Ini berarti bahwa setiap konfigurasi yang dibuat oleh citra perusahaan Windows dapat dihilangkan sebagai penyebabnya. Juga, konfigurasi jaringan cukup "vanilla."
Pembaruan 2014-01-21
Saya sudah mencoba ide "emulasi" Internet Explorer. Saya membuat kunci, "iexplorer.exe" sebagai nilai DWORD dan QWORD (secara individual) dengan nilai-nilai 8000, 8001, 9000, 9001, 10000, and 10001
. Setelah masing-masing, reboot dan diuji lagi. Semua upaya ini menghasilkan hasil yang sama. Sebagai tambahan, kita perlu menguji kode ini di IE11. Berbagai kode dan trik kompatibilitas tidak benar-benar membantu kita dalam jangka panjang.
Pembaruan 2014-01-22
Mengaktifkan server XAMPP Apache pada port 1337. IE terhubung dengan baik. Jadi, ada sesuatu tentang respons NodeJS yang tidak disukai IE dan peramban lain tampaknya dapat menangani dengan baik. Kami akan menyelidiki kode NodeJS kami untuk melihat apa yang sebenarnya terjadi di header / konten untuk melihat apakah ada yang keluar dari jalur.
Pembaruan 2014-01-27: Resolusi
Saya hanya ingin mendokumentasikan hasilnya. Respons asli termasuk Content-Type: text/html;charset=utf-8
dan berdasarkan pada jawaban yang benar, seharusnya: Content-Type: text/html; charset=utf-8
dengan spasi antara tipe dan charset.
Inilah hasilnya:
Tanggapan mentah:
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>
Terima kasih kepada @harrymc karena mengungkap jawabannya.