【问题标题】:GWT : separate js + css + images from serverGWT:从服务器中分离 js + css + 图像
【发布时间】: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 访问框架 ...

有什么建议,有帮助吗?

【问题讨论】:

    标签: gwt same-origin-policy


    【解决方案1】:

    您点击了Same Origin Policy,它阻止了向源服务器以外的服务器发出 XMLHTTPRequest。这有效地防止了跨域 GWT-RPC。

    Making cross-site requests 中描述了可能的解决方法:

    1. 在您的服务器上运行代理
    2. 将 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”,默认链接器)

    【讨论】:

      猜你喜欢
      • 2012-11-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-01-18
      相关资源
      最近更新 更多