【发布时间】:2010-12-05 19:35:16
【问题描述】:
我在远程服务器上有一个 solr 索引,需要创建一个搜索页面界面。我正在使用 GWT 对页面进行编码,并使用 XML-HTTP 来查询索引并接收响应。问题是同站点源安全策略。它不会让 JavaScript 检索远程 XML 数据。有没有解决方法,最好不要使用 JSON。
【问题讨论】:
标签: java gwt solr same-origin-policy
我在远程服务器上有一个 solr 索引,需要创建一个搜索页面界面。我正在使用 GWT 对页面进行编码,并使用 XML-HTTP 来查询索引并接收响应。问题是同站点源安全策略。它不会让 JavaScript 检索远程 XML 数据。有没有解决方法,最好不要使用 JSON。
【问题讨论】:
标签: java gwt solr same-origin-policy
类似问题:Make GWT interact with ASP.NET Web Service
那里的答案也应该适用于此。
根据您要发送的数据类型(即它们的“公开”程度),JSONP 可能不是最佳选择 - 它不是最安全的传输方法(纯JSON 更安全,但要克服 SOP,您需要填充)。
如果您在.. 服务器端有 Java 服务器,我会选择 GWT <-> servlet (acting as proxy, on the same domain as your main app) <-> web service (any domain) - 最安全和最干净的代码,afaict。
【讨论】:
window.name hack 也比 JSONP 安全得多 - 我知道的唯一漏洞是 window.name 的值仍然存在,即使用户离开了网站(这就是为什么这个 hack有效,但这也意味着 sitexxx.com 可以尝试读取 window.name 以搜索机密/任何数据)。但是,使用来自 Ray Cromwell 的自定义 FormPanel 可以解决这个问题 - FormPanel 使用动态创建的 iframe,因此在使用后它会被丢弃,因此之后没有人可以读取该 iframe 的 window.name 的值。