今、デスクトップアプリケーションをapacheを経由してブラウザで操作できるような仕組みを作っております。もとのデスクトップアプリがjavaで実装されており、そこではsocketを特定のポートでオープンしています。
serverSocket = new ServerSocket(3811);
socket = serverSocket.accept();
そして、ブラウザの方ではYUIのスライダーを利用したUIをつくっており、そのスライダーの値が変更されると、
var httpObj = new XMLHttpRequest();
httpObj.open("POST","http://localhost:3811",true);
httpObj.send("value="+val);
というように送信しています。
現状ではc://*****/***/****.htmlという形で、apacheを介さずに、同じマシン上でアクセスした場合、メッセージングが正常に行われていることを確認することができたのですが、
http://localhost/****.htmlの形でapacheを経由してアクセスした場合、メッセージングができません。
onreadystatechangeも呼び出されなく、また、netstat等でコネクション確認をしてみましたが、まったくコネクションが貼られていない状態です。apacheがなんらかのフィルタリングをおこなっているようにも思えるのですが、様々な資料にあたってみましたが、まったくそれらしき記述を見つけることができずにいます。
どなたか、アドバイスをいただける方がいらっしゃいましたら、ヒントだけでも結構ですので、よろしくお願いいたします。
No.2ベストアンサー
- 回答日時:
おもしろそうだったので実験してみました。
結果 ie5.5、ie6 はできました。ie7はできません。(win)
mozilla系はできません
ポート指定でエラーになっているようです。
この手のデバッグは(http://localhost)では無理です。
サーバーとクライアントを別にして、ネットワークモニタを使うと原因究明が早いです。
調査していただきありがとうございます。じつは便宜上windowsで実行しているように書きましたが、OSXでsafariを利用しています。
結論からいいますと、この問題は最終的にはapache、ブラウザのかなり低レベルなところまで調査する必要があったので、別の方法で解決することにしました。
近年ではxmlhttprequestから別ホスト、別ポートへのリクエスト送信は不可とするようになっているようで、ie7でできなかったのも、その線ではないかと思われます。
解決策として実行したのは、apacheのProxyPassディレクティブを利用して、あくまで同ホスト、同ポートにリクエストをおくるのだが、apacheでそれをそのまま転送するという形をとりました。この対応で多少のレイテンシーが発生すると考えられますが、現状はさほど影響を感じません。今後調査していこうと思います。ネットワークモニタでもその際に、実際に監視してみようと思います。
このたびは貴重なアドバイスありがとうございました。
No.1
- 回答日時:
私は実験していません。
(ネットワークプログラミングの経験が無いため)他のブラウザ含めどうなるか試してはいない。
しかし、IEを使っているなら,
例えばMSDNを見ると以下のように書かれています
http://msdn2.microsoft.com/en-us/library/ms53664 …
Security Alert : Cross-domain, cross-port, and mixed protocol requests are not allowed. The sUrl parameter may only specify XML data files in the same domain, using the same port and protocol method, as that from which the page is served.
セキュリティ警告:クロスドメイン・クロスポート・および複数のプロトコルの混在は許可されていない。sURLパラメータはそのページが提供されたのと同一ドメイン,同一ポート,同一プロトコルの同一メソッドを使ってXMLファデータファイルを指定するのみである。
という記述があります。
====
ローカルファイルで何故出来たかは俺は良く解らん。解らんばかりですまんけど、参考になれば。
ご指摘ありがとうございます。
クロスポートのメッセージングが禁止されている件ですが、近年どのブラウザもそうなっているようですね。上記でもうしあげましたが、わたしはsafariを使っていました。
ほんと、なんでローカルファイルでは実行可能なのか、さっぱりわかりません。apacheのソースコードをみることしかないのかも知れないとも思いましたが、さすがにそこまでは手に負えないということで、上記の対応を行いました。
このたびは参考になるご意見、本当にありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- PHP eclipse pleiades phpのインストールについて 1 2023/02/03 17:15
- サーバー 別サーバに構築したApache+Tomcatの連携について 2 2023/03/06 23:23
- アプリ swiftでスマホアプリを開発した時の動作確認 1 2023/02/14 11:37
- MySQL Mac です。ローカルホストの phpMyAdmin にアクセスできません。 1 2023/06/06 17:14
- Gmail gmailに弾かれて困っています。SPFレコードについて、これは詰んでいるでしょうか 3 2023/06/10 13:08
- その他(ブラウザ) このページは動作していません HTTP ERROR 401 2 2022/11/28 12:11
- オープンソース AWSドメイン名でApacheテスト・ページを表示させる方法を教えて下さい。 1 2023/04/26 15:59
- プリンタ・スキャナー キャノンmp490プリンター【エラー番号5400】で【プリンタートラブルが発生しました。電源を入れ直 2 2023/07/24 17:45
- Visual Basic(VBA) Excelのマクロコードについて教えてください。 1 2022/03/27 13:25
- その他(開発・運用・管理) WindowsからSSHでサーバーにあるファイルをダウンロードできない…。 3 2022/04/24 11:08
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
JSPのクラスをコンパイルできな...
-
[apache+tomcat]なぜ!?実行し...
-
jsp:useBean の使い方???
-
eclipseでTomcat起動時にエラー...
-
Eclipseで、プロジェクト名のと...
-
Eclipseのアンインストールの仕方
-
正しいURL指定しているにもかか...
-
javaでuseBeanエラーの解決方法
-
eclipse実行ができない
-
html上で、バッチやexeファイル...
-
マイクラjavaでForgeを入れたい...
-
NECのタブレット、LT-TLAを譲っ...
-
Eclipse(JAVA)のデバッグで他...
-
Eclipse・プロジェクトで、フォ...
-
eclipseでスタックサイズを変更...
-
eclipseのショトカットキー
-
split関数で区切り文字がない場合
-
Eclipseでクラスファイルが生成...
-
コンパイル時にエラーが出てし...
-
vs codeはオフラインでも使用で...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
JSPのクラスをコンパイルできな...
-
eclipseでTomcat起動時にエラー...
-
isapi_redirect.dllのダウンロード
-
Eclipseでサーブレットを使用す...
-
tomcatの不具合
-
ApachePOIでエラー
-
apache2.2-tomcat6.0の連携のエ...
-
jspプログラムについて
-
javax.servlet.ServletExceptio...
-
自分で作成したservletを起動す...
-
TOMCATで上手く起動しない
-
IISとローカルと別サーバのTomc...
-
「サーブレットインスタンスを...
-
No collection foundと出てしま...
-
jsp:useBean の使い方???
-
ant1.7.1がほしい
-
struts2のMaven ProjectをEclip...
-
Microsoft Visual Studio Code ...
-
eclipseのtomcatでエラーが発生...
-
[apache+tomcat]なぜ!?実行し...
おすすめ情報