ฉันมีเซิร์ฟเวอร์ NodeJS ที่ทำงานบนเครื่องท้องถิ่นเพื่อการพัฒนา โดยค่าเริ่มต้นจะใช้พอร์ต 1337 (ฉันได้ลองพอร์ตจำนวนหนึ่งเช่น 8080, 1234, 9000, 9090, 65432 และอื่น ๆ )
ฉันสามารถเชื่อมต่อกับเซิร์ฟเวอร์ NodeJS นี้ได้สำเร็จจาก Chrome, Firefox และ Opera แต่เมื่อฉันพยายามเชื่อมต่อกับ Internet Explorer 11 ฉันเห็น "หน้านี้ไม่สามารถแสดงได้" (ดูภาพ)
ฉันได้ลองใช้ "วิธีแก้ปัญหา" ที่หลากหลายและดูคำถาม / คำตอบหลายข้อในเว็บไซต์นี้ ไม่มีใครทำงานได้เลย รวมไปถึง:
- ฉันได้ลอง 127.0.0.1 แล้ว
- ฉันปิดใช้งาน "โหมดที่ได้รับการป้องกัน" และ "โหมดการป้องกันขั้นสูง"
- ฉันได้เพิ่ม "localhost" ลงใน Intranet Zone และ Trusted Zone
- ฉันปิดใช้งาน "ข้อความ HTTP ที่เป็นมิตร" โดยหวังว่าจะเห็นรายละเอียดเพิ่มเติม
- ฉันลองใช้ชื่อเครื่องและชื่อ DNS
- ฉันพยายามสร้างรายการด้วยตนเองในไฟล์ hosts สำหรับ "localhost" และแม้แต่ "thisismyfrigginpc" โดยใช้ที่อยู่ IPv4 ของฉัน
ความสำเร็จเดียวที่ฉันมีคือเมื่อเซิร์ฟเวอร์ทำงานที่พอร์ต 80 ( http://localhost:80/
หรือhttp://localhost
) อย่างไรก็ตามฉันไม่สามารถพัฒนาบนพอร์ต 80 ได้ด้วยเหตุผลหลายประการ ฉันต้องทดสอบโค้ดของฉันบน localhost + พอร์ต (บางพอร์ตพอร์ตอื่นที่ไม่ใช่ 80 และ 443)
คำถามและคำตอบที่ไม่ช่วย:
- ทำไมฉันไม่สามารถไปที่ http: // localhost ผ่าน IE ได้
- Chrome และ Firefox สามารถเข้าถึง localhost Internet Explorer 9 ไม่สามารถทำได้ ทำไม?
- วิธีทดสอบไซต์ท้องถิ่นใน Metro IE10
- /programming/19268956/can-not-access-localhostport
กรุณาช่วย!
BTW การเรียกใช้ Windows 7 Enterprise 64 บิต การปรับใช้องค์กร แต่ฉันมีสิทธิ์ผู้ดูแลระบบ การกำหนดค่าเครือข่ายค่อนข้างมาตรฐาน DHCP ที่ไม่มี NAT และไม่มีพร็อกซี
UPDATE
ตามคำแนะนำจาก @codenoire ฉันติดตั้ง Fiddler เพื่อดูคำขอ / ตอบกลับ ด้านล่างนี้เป็นคำขอและการตอบกลับแบบดิบจาก IE-to-Fiddler-to-server-to-Fiddler:
ขอร้อง
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
คำตอบ
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>
ผล
อัปเดต 2014-01-17
ฉันได้ทดสอบสถานการณ์นี้ในการติดตั้ง "clean" ที่ไม่ใช่องค์กรของ Windows 7 ด้วย IE 11 ผลลัพธ์จะเหมือนกับการสังเกตสถานะของฉัน ซึ่งหมายความว่าการกำหนดค่าใด ๆ ที่ทำโดยอิมเมจองค์กรของ Windows สามารถถูกกำจัดได้เนื่องจากสาเหตุ นอกจากนี้การกำหนดค่าเครือข่ายค่อนข้าง "วานิลลา"
อัปเดต 2014-01-21
ฉันลองใช้แนวคิด "จำลอง" ของ Internet Explorer แล้ว ฉันสร้างคีย์ "iexplorer.exe" เป็นทั้งค่า DWORD และ QWORD (แยกต่างหาก) พร้อมค่า8000, 8001, 9000, 9001, 10000, and 10001
ต่างๆ หลังจากนั้นให้รีบูตและทดสอบอีกครั้ง ความพยายามทั้งหมดเหล่านี้ให้ผลลัพธ์ที่เหมือนกัน เราจำเป็นต้องทดสอบโค้ดนี้ใน IE11 รหัสและลูกเล่นที่เข้ากันได้หลากหลายไม่ได้ช่วยเราได้จริงในระยะยาว
อัปเดต 2014-01-22
ยิงเซิร์ฟเวอร์ XAMPP Apache ที่พอร์ต 1337 IE เชื่อมต่อกับมันได้ดี ดังนั้นมีบางอย่างเกี่ยวกับการตอบสนองของ NodeJS ที่ IE ไม่ชอบและเบราว์เซอร์อื่น ๆ ดูเหมือนจะจัดการได้ดี เราจะตรวจสอบรหัส NodeJS ของเราเพื่อดูว่าเกิดอะไรขึ้นในส่วนหัว / เนื้อหาเพื่อดูว่ามีอะไรผิดปกติหรือไม่
อัปเดต 2014-01-27: การแก้ปัญหา
ฉันแค่ต้องการเอกสารผลลัพธ์ การตอบสนองดั้งเดิมรวมเนื้อหาประเภท: text/html;charset=utf-8
และขึ้นอยู่กับคำตอบที่ถูกต้องมันควรจะ: Content-Type: text/html; charset=utf-8
มีช่องว่างระหว่างประเภทและชุดอักขระ
นี่คือผลลัพธ์:
การตอบสนองดิบ:
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>
ขอบคุณ @harrymc ที่เปิดเผยคำตอบ