GWT:从服务器中分离 js + css + 图像
Posted
技术标签:
【中文标题】GWT:从服务器中分离 js + css + 图像【英文标题】:GWT : separate js + css + images from server 【发布时间】:2011-08-29 17:30:39 【问题描述】:我们希望有以下配置:
一个服务器正在回复 GWT RPC:x.com(运行 Java 的那个) 另一台服务器正在为 js / css / 图片提供服务:y.com(用于带宽优化)所以主页是:http://x.com/index.html
并包含这一行:<script type="text/javascript" language="javascript" src="http://**x.com**/my-app.nocache.js"></script>
我们收到一个 SOP 错误:不安全的 JavaScript 尝试使用 URL 访问框架 ...
有什么建议,有帮助吗?
【问题讨论】:
【参考方案1】:您点击了Same Origin Policy,它阻止了向源服务器以外的服务器发出 XMLHTTPRequest。这有效地防止了跨域 GWT-RPC。
Making cross-site requests 中描述了可能的解决方法:
-
在您的服务器上运行代理
将 JSON 响应加载到
<script>
标记中
【讨论】:
Thx - 这不是将多个 GWT RPC 发送到不同的来源,而是将实际的 WEB 资源(图像、css、js、html)与唯一的 GWT RPC 服务器分开。不知道有没有可能? 这正是我要说的:SOP 说您只能与加载 HTML+JS 的域(服务器)进行通信。 那么,您是从 x 服务器还是从 grom y 服务器加载 .js 文件? 另外,您是否有来自不同域 (x,y) 的 javascript 尝试相互访问? 不只是一台服务器上用于带宽目的的 GWT“资源”和另一台服务器上的“RPC”服务器。【参考方案2】:将以下内容添加到您的 gwt.xml:
<add-linker name="xsiframe" />
这将生成稍微不同的代码,可以跨域加载。您的“主机页面”仍必须从您运行 GWT-RPC servlet 的同一台服务器加载,以免触发 SOP。
见this FAQ entry(“xs”链接器早于“xsiframe”链接器,后者现在是首选,最终甚至可以取代“std”,默认链接器)
【讨论】:
以上是关于GWT:从服务器中分离 js + css + 图像的主要内容,如果未能解决你的问题,请参考以下文章