O IE não funciona com localhost + port

25

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).

insira a descrição da imagem aqui

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 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

insira a descrição da imagem aqui

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-8e com base na resposta correta, deveria ser: Content-Type: text/html; charset=utf-8com um espaço entre o tipo e o conjunto de caracteres.

Aqui estão os resultados:

insira a descrição da imagem aqui

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.

mawcsco
fonte
1
Vote para obter screenshots.
oxímoro
primeiro, desfaça a maioria das coisas que você tentou, especialmente a adição à zona da Intranet. se você for adicioná-lo a uma zona, use Sites confiáveis.
Frank Thomas
@FrankThomas Obrigado por me lembrar. Eu tentei isso sem sucesso. Eu editei minha pergunta para refletir isso.
mawcsco
Você poderia postar suas configurações de ligação?
Vanadis 21/01
@Vadadis bind-settings? Você pode esclarecer?
mawcsco

Respostas:

9

O artigo WWW3 Configurando o parâmetro HTTP charset especifica:

Content-Type: text/html; charset=utf-8

Isso define Content-Typecomo ter um espaço em branco antes charset.

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.

harrymc
fonte
1) O uso do nome da máquina não resolve a situação. 2) Eu já usei o Fiddler e incluí os resultados no meu post. 3) O Wireshark + pcap não pode capturar no host local. Usei RawCap + Wireshark e os resultados foram idênticos ao Fiddler.
precisa saber é
Por idêntico, quis dizer que os pacotes decodificados pareciam praticamente os mesmos.
mawcsco
Eu não "desisti" de Fiddler. Funciona bem e eu recebo os mesmos "resultados": Chrome, Firefox, Opera se conectam bem, o IE não. Publiquei a resposta de solicitação decodificada e bruta e tudo parece normal / adequado e, no entanto, o IE falha ao exibir a página.
mawcsco
Que conselho é esse? Eu já tentei o nome da máquina. Meu post diz isso. O certificado raiz do violinista é necessário apenas para fazer conexões SSL; Não preciso disso (e não vejo como isso ajudaria.) Já experimentei o Wireshark, não revela nada de novo. O Fiddler mostrou com êxito que a solicitação / resposta do servidor está correta, o que deduzi ao ver todos os outros navegadores funcionando bem. SOMENTE o IE está se comportando de maneira diferente.
precisa saber é
Sim, "agarrar os canudos" é exatamente como isso é. Estou no meu juízo final. O UAC já está desativado, não há ajuda lá. Estou analisando a questão do espaço charset, mas não tenho ideia de como vou fazer isso com isso. Eu estou olhando para isso.
precisa saber é
3

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:

FEATURE_BROWSER_EMULATION

e dentro dele, crie um valor DWORD:

iexplorer.exe

com um valor de um dos seguintes:

 IE8 - 8000 (or 8001)
 IE9 - 9000 (or 9001)
 IE10 - 10000 (or 10001)

Tivemos o maior sucesso com o 10001.

WreithKassan
fonte
Eu já testei isso em várias máquinas, algumas das quais tiveram uma instalação "nova" do Windows e do IE.
mawcsco
Você já executou o IE com os complementos desativados? Eu sei que você disse que era uma nova instalação, mas às vezes vem pré-embalada com inchaço.
precisa saber é o seguinte
Novamente, uma nova instalação do Windows e IE. Nenhum complemento instalado.
precisa saber é
Minha postagem original já afirma que eu tentei 127.0.0.1. Vou tentar o truque de "emulação".
precisa saber é
Ok, nenhum dos valores de emulação do navegador nesta resposta funciona.
mawcsco
1

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).

Xavier J
fonte
Definitivamente, nenhum proxy está acontecendo aqui. Nem usamos NAT. Atualizei minha pergunta de acordo.
mawcsco
Dito isto, conecte seu navegador ao Fiddler e veja o que pode estar acontecendo sob o capô. Experimente alguns sites que funcionam, tente localhost e observe a exibição do tráfego. Melhor eu posso recomendar. fiddler2.com
Xavier J
Portanto, o Fiddler apresenta um proxy. Agora, no IE, vejo: "O servidor proxy não está respondendo". No entanto, a solicitação / resposta no Fiddler mostra que está tudo bem. O servidor respondeu com os cabeçalhos esperados e o conteúdo HTML. Mas, não é isso que vejo no IE.
mawcsco
-1

Estou fazendo isso muda, e tudo funciona bem no Windows 10 de 64 bits.

insira a descrição da imagem aqui

insira a descrição da imagem aqui

user728452
fonte
1
Eu não acho que isso resolverá o problema dos OPs - que foi confirmado como uma resposta HTTP Cntent-Type malformada.
DavidPostill