Java XMLHttpRequest跨源资源共享(qooxdoo和tomcat)

Java XMLHttpRequest跨源资源共享(qooxdoo和tomcat),java,javascript,tomcat,qooxdoo,Java,Javascript,Tomcat,Qooxdoo,我在tomcat上部署了一个Java REST Web服务(http://localhost:8080/myrestfulapp/aservice/) 在我的qooxdoo应用程序中,我尝试使用qx.io.remote.request发送POST请求。 我构建了该应用程序,并将其部署在一个名为ApacheHTTP的服务器上。 当我尝试发送请求时,在我的web浏览器(linux上的Chrome)的javascript控制台中出现以下错误: 访问控制不允许源http//myserver.org允许源

我在tomcat上部署了一个Java REST Web服务(http://localhost:8080/myrestfulapp/aservice/)

在我的qooxdoo应用程序中,我尝试使用qx.io.remote.request发送POST请求。 我构建了该应用程序,并将其部署在一个名为ApacheHTTP的服务器上。 当我尝试发送请求时,在我的web浏览器(linux上的Chrome)的javascript控制台中出现以下错误: 访问控制不允许源http//myserver.org允许源

我在tomcat的根webapp、/var/www和http服务器的根目录中添加了crossdomain.xml。 我启用了apache标头(a2enmod标头),并在服务器的配置文件中添加了访问控制允许源“*”

以下是发送请求的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配置文件: 服务器管理员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>
DocumentRoot/home/jihedamine/HttpServer
选项如下符号链接
允许超越所有
标题集访问控制允许原点“*”
选项索引跟随符号链接多视图
允许超越所有
命令允许,拒绝
通融


那么,我如何能够从qooxdoo应用程序向部署在tomcat上的java后端发送跨源http请求呢?

当您尝试使用qooxdoo访问其他域时,必须将“qx.io.remote.Request”实例中的属性“crossDomain”设置为“true”:

有关更多详细信息,请参阅API文档:

跨域请求控制是浏览器的一项功能,因此我认为您在服务器端对此无能为力。jsonp格式可能会对您有所帮助。在现代浏览器中,您确实有一些跨域支持的服务器端选项。退房
req.setCrossDomain(true);