개발 목적으로 로컬 시스템에서 NodeJS 서버를 실행하고 있습니다. 기본적으로 포트 1337을 사용합니다 (8080, 1234, 9000, 9090, 65432 등의 다른 포트를 사용해 보았습니다).
Chrome, Firefox 및 Opera에서이 NodeJS 서버에 성공적으로 연결할 수 있습니다. 그러나 Internet Explorer 11에 연결하려고하면 "이 페이지를 표시 할 수 없습니다"(이미지 참조)가 표시됩니다.
다양한 "솔루션"을 시도하고이 사이트에서 몇 가지 질문 / 답변을 보았습니다. 그들 중 누구도 일하지 않았습니다. 포함 :
- 127.0.0.1을 시도했습니다
- "보호 모드"및 "확장 보호 모드"를 비활성화했습니다.
- 인트라넷 영역과 신뢰할 수있는 영역에 "localhost"를 추가했습니다.
- 자세한 내용을보기 위해 "친근한 HTTP 메시지"를 비활성화했습니다.
- 컴퓨터 이름과 DNS 이름을 사용해 보았습니다.
- IPv4 주소를 사용하여 "localhost"및 "thisismyfrigginpc"에 대한 호스트 파일에 수동 항목을 작성하려고했습니다.
내가 가진 유일한 성공은 서버가 포트 80 ( http://localhost:80/
또는 http://localhost
) 에서 실행될 때 입니다. 그러나 여러 가지 이유로 포트 80에서 개발할 수 없습니다. localhost + port (일부 포트, 80 및 443 이외의 포트)에서 코드를 테스트해야합니다.
도움이되지 않는 질문과 답변 :
- IE를 통해 http : // localhost를 방문 할 수없는 이유는 무엇입니까?
- Chrome과 Firefox는 localhost에 연결할 수 있습니다. Internet Explorer 9는 할 수 없습니다. 왜?
- Metro IE10에서 로컬 사이트를 테스트하는 방법?
- /programming/19268956/can-not-access-localhostport
도와주세요!
BTW, Windows 7 Enterprise 64 비트 실행 회사 배포이지만 관리자 권한이 있습니다. 네트워크 구성은 NAT가없고 프록시가없는 표준 DHCP입니다.
최신 정보
@codenoire의 추천에 따라 Fiddler를 설치하여 요청 / 응답을 확인했습니다. 다음은 IE-to-Piddler-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 업데이트
IE 11을 사용하여 "비정상"비 기업 Windows 7 설치에서이 시나리오를 테스트했습니다. 결과는 제 관찰 결과와 동일합니다. 이는 기업 이미지로 만든 구성을 원인으로 제거 할 수 있음을 의미합니다. 또한 네트워크 구성은 "바닐라"입니다.
2014-01-21 업데이트
Internet Explorer "에뮬레이션"아이디어를 시도했습니다. "iexplorer.exe"키를 DWORD 및 QWORD 값으로 (개별적으로) 값으로 작성했습니다 8000, 8001, 9000, 9001, 10000, and 10001
. 각각 후에 다시 부팅하고 다시 테스트했습니다. 이 모든 시도는 동일한 결과를 낳았습니다. 옆으로, 우리는 IE11에서이 코드를 테스트해야합니다. 다양한 호환성 코드와 트릭은 실제로 장기적으로 도움이되지 않습니다.
2014-01-22 업데이트
포트 1337에서 XAMPP Apache 서버를 시작했습니다. IE는 잘 연결됩니다. 따라서 IE가 좋아하지 않는 NodeJS 응답과 다른 브라우저가 잘 처리하는 것으로 보입니다. 우리는 NodeJS 코드를 조사하여 헤더 / 콘텐츠에서 정확히 무슨 일이 일어나고 있는지 확인하기 위해 줄을 섭니다.
2014-01-27 업데이트 : 해결
방금 결과를 문서화하고 싶었습니다. 원래 응답에는 Content-Type이 포함 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에게 감사합니다.