我正在使用订阅SIBus jms Topic的phonegap编写移动应用程序。
首先,我能够在配置后运行演示,但我无法从不同的域运行它,因为应用程序必须从服务器在外部域上运行。
我在跨域 ajax 调用 Web 服务时遇到了很多问题,解决方案是将标头更改为 header("Access-Control-Allow-Origin", "*");
我正在研究如何解决此问题以将标头更改为传入请求
dojo.require("dojox.cometd");
dojo.addOnLoad(function(){
dojox.cometd.init("http://localhost:9080/ClientWeb/webmsgServlet");
dojox.cometd.subscribe("/T.Frs", window, "display");
}
);
function display(msg) {
console.log(msg);
alert("Message " + msg.data.test);
}
看看 Jetty 的 CrossOriginFilter,它是一个可移植的过滤器,你可以在任何实现 CORS 规范的 servlet 容器中运行,允许你无缝地访问跨源资源。
CometD 在演示中默认提供此过滤器,因此您可以查看那里的配置方式,或查看 CometD 参考第 5.4.1.3 节。