1

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 関数はまだ呼び出されていません。

4

2 に答える 2

2

「成功」オプションのつづりを間違えました。

于 2013-05-31T21:38:30.670 に答える
0

プロキシが期待どおりに機能していないようです。

そして、あなたの最初の問題に関しては、それはクロスドメインリクエストの問題であるように私には思えます.

于 2013-05-31T19:10:01.147 に答える