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

时间:2011-01-04 03:19:07

标签: java javascript tomcat qooxdoo

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

在我的qooxdoo应用程序中,我尝试使用qx.io.remote.Request发送POST请求。 我构建了应用程序并将其部署在apache HTTP服务器(名为http://myserver.org)上。 当我尝试发送请求时,我在我的网络浏览器的javascript控制台(Linux上的Chrome)中收到此错误: Access-Control-Allow-Origin

不允许使用Origin http // myserver.org

我在tomcat的ROOT webapp,/ var / www和我的http服务器的根目录中添加了crossdomain.xml。 我启用了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>

那么我怎么能启用从qooxdoo应用程序发送跨源http请求到部署在tomcat上的java后端?

1 个答案:

答案 0 :(得分:1)

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

req.setCrossDomain(true);

有关详细信息,请查看API文档: http://demo.qooxdoo.org/current/apiviewer/#qx.io.remote