Web サービスの単純な「概念実証」フロント エンドを作成しようとしています。Web サービスは、Tomcat で実行される単純な xml を返す Java Web アプリケーションです。フロント エンドは、いくつかの jquery 関数を含む単純な html ページで構成されています。サーバーの 1 つで Web サービスを実行しながら、ローカル マシンでページを開発しています。
基本的にこれは私がすることです:
var url = "http://ourserver.com:51088/service/action/?param=123";
$.get(url,function(data,status) {
alert("Data: " + data + "\nStatus: " + status);
});
URL を Firefox のアドレス バーに入力すると、結果の xml が表示されます。
jquery コードを実行すると、Firebug は結果の xml を表示しますが、アラートは表示されません。
クロスブラウザー スクリプティングの問題かもしれないと考えて、任意の localhost:51088/path を ourserver.com:51088/path に渡す小さな node.js プロキシ サーバーを作成しました。だから私は変数をに変更しurl
ました
var url = "http://localhost:51088/service/action/?param=123";
繰り返しますが、ブラウザでこの URL をテストすると、xml が生成されます。したがって、node.js プロキシ サーバーは正常に動作しています。
Firebug で jquery コードを実行すると、一貫して取得されるようになりましたReload the page to get source for: http://localhost:51088/.....
私は今途方に暮れています。
更新: 詳細を読んだ後、jquery コードを次のように変更しました。
$.ajax( {
type: "GET",
contentType: "application/xml",
url: url,
datatype: "text xml",
xhrFields: {
withCredentials: true
},
succes: function(xml) { alert(xml) },
error: function(obj, status, err) { alert ("error\nstatus: " + status + "\nerr: " + err)}
});
リモート URL を使用するか、ローカル URL を使用するかは問題ではありません。どちらもコンソール ログに xml を返しますが、success 関数はまだ呼び出されていません。