1

現在、WebページでアプレットをホストしているWebアプリケーションがあります。アプレットはTomcatサーブレットに接続し、リクエストを送信します。私のソリューションがクライアントでJavaアプレットの代わりにJavascriptを使用できれば、環境によってはより便利になります。ただし、これにはJavascriptがPOSTをTomcatサーブレットに送信する必要があります。

Webページは、同じWebサーバー(実際には同じTomcatインスタンス)によって提供されます。ただし、アプレットはリクエストを別のサーブレットに送信します。

Javascriptは基本的に、サーブレットに定期的にクエリを実行する必要があり、応答に基づいてjavascript関数を呼び出します。

それは可能でしょうか?

もしそうなら、どのように始めるかについての指針はありますか?

4

3 に答える 3

1

はい、JavaScript は任意の Web サーバーに POST 要求を送信できます。サーブレットを制御できる場合は、access-control-allow-originプロパティを設定することで、クロスサイト スクリプティングの制限をすべて回避できます。

AJAX は、JavaScript + HTTP 要求を指す Web コミュニティの用語です。MDN のこのAJAX チュートリアルをお勧めします。jQuery の AJAX ライブラリもお勧めします。


Internet Explorer のバージョンによっては、サーバーが正しくセットアップされていても問題が発生することがあります。すべてのブラウザーをカバーするために使用する JS 関数を次に示します。

/**
 * Wraps jQuery's AJAX, adds X-Domain support for IE
 */
function xDomainAJAX (url, settings) {
  if ($.browser.msie && parseInt($.browser.version, 10) >= 8 && XDomainRequest) {
    // use ms xdr
    var xdr = new XDomainRequest();
    xdr.open(settings.type, url + '?' + $.param(settings.data));
    xdr.onprogress = function() {};
    xdr.onload = function() {
      settings.success(xdr.responseText);
    };
    xdr.onerror = settings.error;
    xdr.send();
  } else {
    // use jQuery ajax
    $.ajax(url, settings);
  }
}
于 2013-01-02T19:29:36.113 に答える
0

「CORS」のサポートサーバーでのクロスオリジン リソース共有により、ブラウザ側のスクリプトで他のサーバーを呼び出すことができます。

JSONP のような古い方法や、メイン ページの IFrame にターゲット ドメインのページを持ち、window.PostMessage / IFrame 名を介して 2 つのページ間で通信する方法もあります。

また、応答が必要ない場合は、任意のドメインに対して POST または GET を実行できます。

于 2013-01-02T19:30:27.830 に答える
0

これは間違いなく可能です。使いやすい関数でこの機能を備えているため、jQuery を使用することをお勧めします: http://api.jquery.com/jQuery.post/。このリンクには、$.post() と $.ajax() を使用した例があることに注意してください。両方とも有効です。$.post は、$.ajax の簡略版です。

どちらの例でも、応答を処理するためにコールバック関数を指定していることに注意してください。

于 2013-01-02T19:31:03.537 に答える