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 バックエンドに送信できるようにするにはどうすればよいでしょうか?