IEはlocalhost +ポートでは動作しません


25

開発のために、ローカルマシンでNodeJSサーバーを実行しています。デフォルトでは、ポート1337を使用します(8080、1234、9000、9090、65432など、他のいくつかのポートを試しました)。

Chrome、Firefox、OperaからこのNodeJSサーバーに正常に接続できます。しかし、Internet Explorer 11に接続しようとすると、「このページを表示できません」と表示されます(画像を参照)。

ここに画像の説明を入力してください

さまざまな「解決策」を試し、このサイトでいくつかの質問/回答を表示しました。どれも機能していません。含む:

  • 127.0.0.1を試しました
  • 「保護モード」と「保護モードの強化」を無効にしました。
  • イントラネットゾーンと信頼済み​​ゾーンに「localhost」を追加しました。
  • 詳細を確認するために、「Friendly HTTP messages」を無効にしました。
  • マシン名とDNS名を使用してみました。
  • IPv4アドレスを使用して、「localhost」、さらには「thisismyfrigginpc」のホストファイルに手動エントリを作成しようとしました。

私が経験した唯一の成功は、サーバーがポート80(http://localhost:80/またはhttp://localhost)で動作することです。ただし、さまざまな理由でポート80で開発することはできません。ローカルホスト+ポート(一部のポート、80および443以外のポート)でコードをテストする必要があります。

役に立たない質問と回答:

助けてください!

ところで、Windows 7 Enterprise 64ビットを実行しています。企業展開ですが、管理者権限があります。ネットワーク構成は、NATとプロキシのない、かなり標準的なDHCPです。

更新

@codenoireからの推奨に基づいて、要求/応答を確認するためにFiddlerをインストールしました。以下は、IEからフィドラーへ、サーバーからフィドラーへの生の要求と応答です。

要求

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インストールで、このシナリオをテストしました。結果は、私の現在の観察結果と同じです。これは、Windowsの企業イメージによって行われた構成を原因として排除できることを意味します。また、ネットワーク構成はかなり「バニラ」です。

更新2014-01-21

Internet Explorerの「エミュレーション」のアイデアを試しました。DWORD値とQWORD値の両方として(個々に)値を持つキー「iexplorer.exe」を作成しました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-8typeとcharsetの間にスペースがあります。

結果は次のとおりです。

ここに画像の説明を入力してください

生の応答:

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に感謝します。


1
スクリーンショットに投票してください。
オキシモロン14年

最初に、特にイントラネットゾーンへの追加など、試したことのほとんどを取り消します。ゾーンに追加する場合は、信頼済みサイトを使用してください。
フランクトーマス14年

@FrankThomas思い出させてくれてありがとう。私はそれを試してみましたが成功しませんでした。それを反映するために質問を編集しました。
mawcsco 14年

バインド設定を投稿してください。
ヴァナディス14年

@Vanadisバインド設定?明確にできますか?
mawcsco 14年

回答:


9

WWW3記事のHTTP charsetパラメーターの設定では、次のことを指定しています。

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

これはContent-Type、前に空白があると定義しcharsetます。

これが実際に問題であることが既にわかっていることを知っているので、問題の原因は、Microsoftまたは中間業者のプロキシによる非常に想像力に欠けるプログラミングにあります。


1)マシン名を使用しても状況は解決しません。2)私はすでにFiddlerを使用しており、結果を投稿に含めました。3)Wireshark + pcapはローカルホストでキャプチャできません。RawCap + Wiresharkを使用しましたが、結果はFiddlerと同じでした。
mawcsco 14年

同じことで、デコードされたパケットはほとんど同じに見えることを意味しました。
mawcsco 14年

私はFiddlerを「あきらめません」。問題なく動作し、同じ「結果」が得られます。Chrome、Firefox、Operaは正常に接続しますが、IEはそうではありません。生のデコードされた要求応答を投稿しましたが、すべてが正常/適切に見えますが、IEはページを表示できません。
mawcsco 14年

それはどんなアドバイスですか?私はすでにマシン名を試しました。私の投稿はそれを言っています。Fiddlerルート証明書は、SSL接続を確立するためにのみ必要です。私はその必要はありません(そして、これがどのように役立つのか見逃しています。)Wiresharkを試してみましたが、新しいことは何も明らかになりません。Fiddlerは、サーバーの要求/応答が正常であることを正常に示しました。これは、他のすべてのブラウザーが正常に動作していることを推測することで推測できました。IEの動作のみが異なります。
mawcsco 14年

ええ、「ストローを掴む」ことはまさにこれがどのように感じるかです。私は機知に富んでいます。UACは既に無効になっていますが、そこには何の助けもありません。文字セットのスペースの問題を調べていますが、どうすればそれでうまくいくのかわかりません。調べています。
mawcsco 14年

3

IEの設定に問題がある可能性があります。

これを修正する最も簡単な方法は、[インターネットオプション]を開き、[詳細設定]タブに移動して、[Internet Explorerの設定をリセット]をクリックすることです。この設定にはすべての設定が含まれていないため、「詳細設定のリセット」ではなく、必ず選択してください。

これが機能しない場合は、localhostの代わりに127.0.0.1を使用してナビゲートしてみてください。これで問題が解決する可能性は低いですが、問題が発生する場合があります。

編集:これはIE11の問題になる可能性があることを付け加えたかった。私たちは多くの互換性の問題を抱えていることを知っています。IE10にロールバックしたくない場合は、レジストリからいつでもエミュレートできます。

HKLM\SOFTWARE\Microsoft\Internet Explorer\MAIN\FeatureControl\

次のキーを作成します。

FEATURE_BROWSER_EMULATION

そしてその中に、DWORD値を作成します。

iexplorer.exe

次のいずれかの値を使用します。

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

10001で最も成功しました。


私はすでにいくつかのマシンでこれをテストしましたが、そのうちのいくつかはWindowsとIEの「新鮮な」インストールがありました。
mawcsco

アドオンを無効にしてIEを実行しましたか?フレッシュインストールだと言っていたのは知っていますが、時折膨らんだ状態でプリパックされています。
WreithKassan

繰り返しますが、WindowsとIEの新規インストールです。アドオンはインストールされていません。
mawcsco 14年

私の最初の投稿では、すでに127.0.0.1を試したことがあると述べています。「エミュレーション」トリックを試してみます。
mawcsco 14年

OK、この回答のブラウザエミュレーション値はどれも機能しません。
mawcsco 14年

1

プロキシ設定を確認してください。企業ネットワーク上にいるため、誰かがIEに不適切なプロキシポリシーを押し込んでいる可能性があります(他のブラウザにミラーリングする必要はありません)。


ここではプロキシは絶対に行われていません。NATも使用していません。それに応じて私の質問を更新しました。
mawcsco 14年

とは言っても、ブラウザをFiddlerに接続して、内部で何が起こっているのかを確認してください。動作するサイトをいくつか試してから、localhostを試して、トラフィックの表示を確認します。お勧めできます。fiddler2.com-
ザビエルJ

そこで、Fiddlerはプロキシを導入します。現在、IEでは、「プロキシサーバーが応答していません」と表示されます。ただし、Fiddlerの要求/応答はすべて問題ないことを示しています。サーバーは、予想されるヘッダーとHTMLコンテンツで応答しました。しかし、それは私がIEで見るものではありません。
mawcsco 14年

-1

私はこの変更を行っており、Windows 10 64ビットですべて正常に動作します。

ここに画像の説明を入力してください

ここに画像の説明を入力してください


1
私はこれがOPの問題を解決するとは思わない-これは不正なCntent-Type HTTPレスポンスであると確認された。
DavidPostill
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.