Tôi có một máy chủ NodeJS chạy trên máy cục bộ của mình cho mục đích phát triển. Theo mặc định, nó sử dụng cổng 1337. (Tôi đã thử một số cổng khác như 8080, 1234, 9000, 9090, 65432 et al).
Tôi có thể kết nối thành công với máy chủ NodeJS này từ Chrome, Firefox và Opera. Nhưng, khi tôi cố gắng kết nối với Internet Explorer 11, tôi thấy "Trang này không thể hiển thị" (xem hình ảnh).
Tôi đã thử nhiều "giải pháp" và xem một số câu hỏi / câu trả lời trên trang web này. Không ai trong số họ đã làm việc. Kể cả:
- Tôi đã thử 127.0.0.1
- Tôi đã tắt "Chế độ bảo vệ" và "Chế độ bảo vệ nâng cao."
- Tôi đã thêm "localhost" vào Vùng Intranet và Vùng tin cậy.
- Tôi đã tắt "Tin nhắn HTTP thân thiện" với hy vọng xem chi tiết hơn.
- Tôi đã thử sử dụng tên máy và tên DNS của mình.
- Tôi đã thử tạo một mục nhập thủ công trong tệp máy chủ của mình cho "localhost" và thậm chí "thisismyfrigginpc" bằng địa chỉ IPv4 của tôi.
Thành công duy nhất tôi có là khi máy chủ chạy ở cổng 80 ( http://localhost:80/
hoặc http://localhost
). Tuy nhiên, tôi không thể phát triển trên cổng 80 vì nhiều lý do. Tôi cần kiểm tra mã của mình trên cổng localhost + (một số cổng, bất kỳ cổng nào ngoài 80 và 443).
Câu hỏi và câu trả lời không giúp ích:
- Tại sao tôi không thể truy cập http: // localhost qua IE?
- Chrome và Firefox có thể truy cập localhost; Internet Explorer 9 không thể. Tại sao?
- Làm cách nào để kiểm tra các trang web địa phương trong Metro IE10?
- /programming/19268956/can-not-access-localhostport
Hãy giúp tôi!
BTW, Chạy Windows 7 Enterprise 64-bit. Triển khai công ty, nhưng tôi có quyền quản trị. Cấu hình mạng là DHCP khá chuẩn không có NAT và không có Proxy.
CẬP NHẬT
Theo khuyến nghị từ @codenoire, tôi đã cài đặt Fiddler để xem yêu cầu / phản hồi. Dưới đây là yêu cầu và phản hồi thô từ IE-to-Fiddler-to-server-to-Fiddler:
Yêu cầu
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
Phản ứng
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>
Kết quả
Cập nhật 2014-01-17
Tôi đã thử nghiệm kịch bản này trên các bản cài đặt Windows 7 phi công ty "sạch" với IE 11. Kết quả giống hệt với các quan sát thường trực của tôi. Điều này có nghĩa là bất kỳ cấu hình nào được tạo bởi hình ảnh công ty của Windows đều có thể được loại bỏ là nguyên nhân. Ngoài ra, cấu hình mạng khá "vanilla".
Cập nhật 2014-01-21
Tôi đã thử các ý tưởng "mô phỏng" Internet Explorer. Tôi đã tạo một khóa, "iexplorer.exe" là cả hai giá trị DWORD và QWORD (riêng lẻ) với các giá trị 8000, 8001, 9000, 9001, 10000, and 10001
. Sau mỗi lần, khởi động lại và thử nghiệm lại. Tất cả những nỗ lực này tạo ra kết quả tương tự. Bên cạnh đó, chúng ta cần kiểm tra mã này trong IE11. Các mã và thủ thuật tương thích khác nhau không thực sự giúp chúng ta về lâu dài.
Cập nhật 2014-01-22
Đã kích hoạt máy chủ XAMPP Apache trên cổng 1337. IE kết nối với nó rất tốt. Vì vậy, có một cái gì đó về phản hồi NodeJS mà IE không thích và các trình duyệt khác dường như xử lý tốt. Chúng tôi sẽ điều tra mã NodeJS của chúng tôi để xem chính xác điều gì đang xảy ra trong các tiêu đề / nội dung để xem có gì không phù hợp không.
Cập nhật 2014-01-27: Nghị quyết
Tôi chỉ muốn ghi lại kết quả. Phản hồi ban đầu bao gồm Kiểu nội dung: text/html;charset=utf-8
và dựa trên câu trả lời đúng, nên là: Content-Type: text/html; charset=utf-8
với khoảng trắng giữa loại và bảng mã.
Đây là kết quả:
Phản hồi thô:
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>
Cảm ơn @harrymc đã khám phá ra câu trả lời.