そのサーバー上のデータを表示および変更するためのインターフェイスを提供する内部Webサーバーがあります。ある場所にいるときはサーバーに直接アクセスできますが、別の場所からサーバーへのsshトンネルを作成する必要があります。http://myserver/blah
その結果、ブラウザに配置するURLは、場所によって異なります。たとえば、http://localhost:8000/blah
。これは同じサーバーですが、ホスト名が異なります。
これは、変更を1つの場所に保存するのを忘れたり、別の場所に移動したときにサーバーが突然見つからなかったりするため、不便です。また、ページをリロードしなければならないので不便です。ページを一度ロードして、どちらの場所でも機能させたいのですが。そのため、XmlHttpRequest処理にコードを追加して、サーバーが見つからないかどうかを検出し、代替サーバーアドレスを使用してリクエストを再発行すると思いました。問題は、これが発生すると、Cookieがサーバーに送信されないことに気付くということです。
との両方のCookieがlocalhost
ありmyserver
ます。これらは実際には同じサーバーであるため、実際には同じ値のセットですが、サーバーが2つの異なるホスト名からアクセスされるため、明らかに重複しています。サーバーのホスト名を手動で変更しても問題はありませんが、これは明らかに私が避けようとしていることです。
おそらくセキュリティ上の問題があるのではないかと思いますが、Cookieがどのように機能するかを読み直した後、この動作がつまずいたり、修正する方法が具体的にわからない場合があります。
ちなみに、問題は私がクロスサイトリクエストをしようとしているということではありません。「Access-Control-Allow-Origin:*」フィールドを返すことでサーバー側でこれを明示的に許可しましたが、リクエストのこの部分に問題はありませんでした。firebugの場合、問題は、リクエストが新しいホスト名に再発行されたときに、そのホスト名にCookieが存在していても、Cookieが送信されないことです。