Eu tenho um servidor NodeJS em execução na minha máquina local para fins de desenvolvimento. Por padrão, ele usa a porta 1337. (Tentei várias outras portas, como 8080, 1234, 9000, 9090, 65432 e outras).
Posso conectar-me com sucesso a este servidor NodeJS a partir do Chrome, Firefox e Opera. Mas, quando tento conectar-me ao Internet Explorer 11, vejo "Esta página não pode ser exibida" (ver imagem).
Eu tentei uma variedade de "soluções" e vi várias perguntas / respostas neste site. Nenhum deles funcionou. Incluindo:
- Eu tentei 127.0.0.1
- Desativei o "Modo protegido" e o "Modo de proteção avançada".
- Adicionei "localhost" à zona da intranet e à zona confiável.
- Desativei "Mensagens HTTP amigáveis" na esperança de ver mais detalhes.
- Eu tentei usar o nome da minha máquina e o nome DNS.
- Tentei criar uma entrada manual no meu arquivo hosts para "localhost" e até "thisismyfrigginpc" usando meu endereço IPv4.
O único sucesso que tive foi quando o servidor é executado na porta 80 ( http://localhost:80/
ou http://localhost
). No entanto, não consigo desenvolver na porta 80 por vários motivos. Preciso testar meu código na porta localhost + (alguma porta, qualquer porta que não seja 80 e 443).
Perguntas e respostas que não ajudam:
- Por que não consigo visitar http: // localhost via IE?
- Chrome e Firefox podem alcançar localhost; O Internet Explorer 9 não pode. Por quê?
- Como testar sites locais no Metro IE10?
- /programming/19268956/can-not-access-localhostport
Por favor ajude!
BTW, executando o Windows 7 Enterprise de 64 bits. Implantação corporativa, mas tenho direitos de administrador. A configuração de rede é um DHCP bastante padrão, sem NAT e sem proxy.
ATUALIZAR
Por recomendação da @codenoire, instalei o Fiddler para ver a solicitação / resposta. Abaixo estão a solicitação e a resposta brutas de IE para Fiddler-to-server-to-Fiddler:
Pedido
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
Resposta
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>
Resultado
Atualização 2014-01-17
Eu testei esse cenário em instalações "corporativas" limpas do Windows 7 com o IE 11. Os resultados são idênticos às minhas observações permanentes. Isso significa que qualquer configuração feita por uma imagem corporativa do Windows pode ser eliminada como causa. Além disso, a configuração de rede é bastante "baunilha".
Atualização 2014-01-21
Eu tentei as idéias de "emulação" do Internet Explorer. Criei uma chave "iexplorer.exe" como valores DWORD e QWORD (individualmente) com os valores 8000, 8001, 9000, 9001, 10000, and 10001
. Após cada um, reiniciei e testei novamente. Todas essas tentativas produziram os mesmos resultados. Como um aparte, precisamos testar esse código no IE11. Os vários códigos e truques de compatibilidade não nos ajudam a longo prazo.
Atualização 2014-01-22
Inicializei um servidor XAMPP Apache na porta 1337. O IE se conecta a ele muito bem. Portanto, há algo sobre a resposta do NodeJS que o IE não gosta e os outros navegadores parecem lidar bem. Investigaremos nosso código NodeJS para ver exatamente o que está acontecendo nos cabeçalhos / conteúdo para ver se algo está fora de linha.
Atualização 2014-01-27: Resolução
Eu só queria documentar os resultados. A resposta original incluía Conteúdo-Tipo: text/html;charset=utf-8
e com base na resposta correta, deveria ser: Content-Type: text/html; charset=utf-8
com um espaço entre o tipo e o conjunto de caracteres.
Aqui estão os resultados:
Resposta bruta:
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>
Obrigado a @harrymc por descobrir a resposta.
fonte
Respostas:
O artigo WWW3 Configurando o parâmetro HTTP charset especifica:
Isso define
Content-Type
como ter um espaço em branco antescharset
.Sei que você já descobriu que esse é realmente o problema; portanto, a origem do problema é uma programação muito pouco imaginativa da Microsoft ou de algum proxy intermediário.
fonte
Provavelmente, há um problema nas suas configurações do IE.
A maneira mais fácil de corrigir isso seria abrir as Opções da Internet, vá para a guia Avançado e clique em "Redefinir configurações do Internet Explorer". Certifique-se de escolher isso e não "Redefinir configurações avançadas", pois este não abrange TODAS as configurações.
Se isso não funcionar, tente também navegar usando 127.0.0.1 em vez de localhost. Não é provável que isso resolva o problema, mas às vezes pode criar um problema.
Edit: Eu queria acrescentar que isso poderia ser um problema com o IE11. Sei que temos tido muitos problemas de compatibilidade com ele. Se você não quiser reverter para o IE10 e tentar isso, sempre poderá emular no registro:
Sob
HKLM\SOFTWARE\Microsoft\Internet Explorer\MAIN\FeatureControl\
você criará uma chave chamada:
e dentro dele, crie um valor DWORD:
com um valor de um dos seguintes:
Tivemos o maior sucesso com o 10001.
fonte
Verifique suas configurações de proxy. Como você está em uma rede corporativa, alguém pode ter uma política de proxy inadequada inserida no IE (que não necessariamente se reflete nos outros navegadores).
fonte
Estou fazendo isso muda, e tudo funciona bem no Windows 10 de 64 bits.
fonte