0

ネットワーク上に2つの内部(イントラネット)Windowsサーバーがあり、ローカルネットワークでのみ使用できます。Sparkserver1にインストールされている場合、次のようにJabber情報を照会できます。

http://server1/plugins/presence/status?jid=username@jabbersrv&type=text

Spiceworksserver2にインストールされており、次のようにJabberのステータスを照会するプラグインを作成しました。

xmlHttp = new XMLHttpRequest();
xmlHttp.open( "GET", "http://server1/plugins/presence/status?jid=username@jabbersrv&type=text", false );
xmlHttp.send( null );
statusStr = xmlHttp.responseText;

しかし、このコード(on server2)はエラーを返しています:

XMLHttpRequest cannot load http://server1/plugins/presence/status?jid=username@jabbersrv&type=text. Origin https://server2 is not allowed by Access-Control-Allow-Origin.

なぜこれが機能しないのですか?同じ環境でこれをうまく実現するVB.netコードがいくつかあります。

Dim jbrStatus As New System.Net.WebClient
Dim userStatus As String = jbrStatus.DownloadString("http://server1/plugins/presence/status?jid=username@jabbersrv&type=text")

Openfireはオンになっていますが、Apacheも私が知っている種類も実行していませんserver1。これらの2つのサーバーは内部(同じドメイン上)にあるため、本質的に相互に信頼するべきではありませんか?これをWindowsドメインとWindowsサーバーで機能させるための最良の方法は何でしょうか?

server1のローカル管理者としてserver2ドメインサーバーを追加しようとしましたが、うまくいきませんでした。

4

2 に答える 2

3

それらが同じネットワーク上にあるかどうかは関係ありません。ドメイン名が異なる場合、XMLHttpRequestsはデフォルトでは機能しません。クロスオリジンリソースシェアリングのために、サーバーが特定のヘッダーを送り返す必要があります。これは最近のブラウザでのみ機能することに注意してください。

于 2012-11-14T21:05:12.383 に答える
1

これは同一生成元ポリシーと関係があります

http://en.wikipedia.org/wiki/Same_origin_policy

このポリシーは、同じサイトから発信されたページで実行されているスクリプトが、特定の制限なしに互いのメソッドとプロパティにアクセスすることを許可しますが、異なるサイトのページ間でほとんどのメソッドとプロパティにアクセスすることを防ぎます。

server1 / server2は、同じネットワーク上にある場合でも、異なるドメインと見なされます。

于 2012-11-14T21:05:19.847 に答える