所以我有一个需要与桌面应用程序通信的 GWT webapp。为了实现这一点,桌面程序在给定端口(例如 )启动网络服务器http://localhost:9000
。
我已经实现了 JSON-P 通信来绕过跨域过滤器,这在本地测试时工作正常(webapp 运行在http://localhost:8888
)。问题是,生产网站是通过 https 提供的,没有浏览器允许您通过 http 从 https 请求 javascript。
所以我尝试了一些东西。
我已经在HttpServletResponse.addHeader("Access-Control-Allow-Origin", "*")
为 GWT javascript 提供服务的服务器和 javascript 尝试向其发出请求并发出 HTTP 请求的服务器上使用 Java 设置了“Access-Control-Origin:*”标头,但这被同一来源阻止过滤器(可能是因为我试图从 https 向 http 发出请求。)
我尝试使用来自新窗口(通过调用 $wnd.open 创建)的 Json-P 通信,没有 URL 希望它可以通过 http 加载,但它是通过 https 加载的,所以我遇到了和以前一样的问题.
有没有办法从通过 https 到 http 的 javascript 发出跨域请求?在本地主机上运行 https 没有任何可行的方法(自签名证书在发出 JSON-P 请求时被阻止。)