2

Tomcat (http://localhost:8080/myrestfulapp/aservice/) にデプロイされた Java REST Web サービスがあります。

私の qooxdoo アプリでは、qx.io.remote.Request を使用して POST リクエストを送信しようとしています。アプリケーションをビルドし、Apache HTTP サーバー (名前はhttp://myserver.org ) にデプロイしました。リクエストを送信しようとすると、Web ブラウザー (Linux の Chrome) の JavaScript コンソールに次のエラーが表示されます: Origin http//myserver.org is not allowed by Access-Control-Allow-Origin

crossdomain.xml を tomcat の ROOT Web アプリケーション、/var/www、および http サーバーのルート ディレクトリに追加しました。Apache ヘッダー (a2enmod ヘッダー) を有効にし、サーバーの構成ファイルに Access-Control-Allow-Origin "*" を追加しました。

リクエストを送信する私の qooxdoo 関数は次のとおりです。

envoyer : function(id, nom, prenom, poste) 
{
  var url = "http://localhost:8080/helloworld/enregistrer";
  var donnees = "{ \"id\":" + id + ", \"nom\":\"" + nom + "\", \"prenom\":\"" + prenom + "\", \"poste\":\""+poste +"\" }";
  alert(donnees);
  var req = new qx.io.remote.Request(url, "POST", "application/json");
  req.setData(donnees);

  req.addListener("completed", function(e) {
            alert(e.getContent());
  });
  req.send();
}

myserver.org 構成ファイルは次のとおりです。 ServerAdmin webmaster@localhost serverName myserver.org

DocumentRoot /home/jihedamine/HttpServer
<Directory />
    Options FollowSymLinks
    AllowOverride All
</Directory>
<Directory /home/jihedamine/HttpServer/>
    Header set Access-Control-Allow-Origin "*"
    Options Indexes FollowSymLinks MultiViews
    AllowOverride All
    Order allow,deny
    allow from all
</Directory>

では、クロスオリジン http リクエストを qooxdoo アプリから tomcat にデプロイされた Java バックエンドに送信できるようにするにはどうすればよいでしょうか?

4

1 に答える 1

1

qooxdoo で他のドメインにアクセスしようとするときは、「qx.io.remote.Request」インスタンスからプロパティ「crossDomain」を「true」に設定する必要があります。

req.setCrossDomain(true);

詳細については、API ドキュメントをご覧ください: http://demo.qooxdoo.org/current/apiviewer/#qx.io.remote

于 2011-01-10T12:12:00.170 に答える