【问题标题】:Is it possible to do mash-ups in FirefoxOS?是否可以在 FirefoxOS 中进行混搭?
【发布时间】:2012-09-25 15:45:38
【问题描述】:

我刚开始做研究,但我假设其他人可能有同样的问题:是否可以为 FirefoxOS 应用程序从不同来源读取数据,例如从不同域的 RSS 提要读取数据?

您是否受到同源政策的限制或有办法绕过它?

【问题讨论】:

    标签: javascript firefox-os


    【解决方案1】:

    是的,你可以!如果您创建标准 Web 应用程序,只需像通常在 Firefox OS 之外那样构建一个 Web 应用程序。如果您创建打包的应用程序,请在您的 Web 应用程序清单中包含对 network-http 权限的请求。这将为您提供不受限制的 HTTP 访问。

    有关权限的更多信息,请参阅清单规范:

    network-http - 发出没有任何来源限制的 HTTP 请求。

    https://developer.mozilla.org/en-US/docs/Apps/Manifest

    编辑:权限已更改为systemXHR

    【讨论】:

    • 所以这将允许在任何地方不受限制的http访问,没有粒度/访问控制列表。对吗?
    • 在应用程序安装时(我认为行为尚未完成)Firefox OS 会询问用户是否要向应用程序授予 network-http。一旦应用程序被授予此权限,是的,该应用程序可以访问任何 http 内容。用户仍然可以在“设置”应用中撤销此权限
    • 两个答案都很好,但是从不同的角度解决问题,一个是从操作系统特定的角度,另一个是从网络应用程序(由于 FirefoxOS 应用程序也是网络应用程序,情况也是如此)。接受这个答案,因为它更具体(恕我直言)
    • 不,安装时不会询问用户。尽管应用程序必须是“特权应用程序”,但为了获得访问权限。这意味着您必须将其编写为打包的应用程序并使用 CSP,然后让应用程序由 Firefox 市场审查。这样,发生的代码审查将确保应用程序不会使用权限作恶。
    • @RobinJ:权限已更改为“systemXHR”
    【解决方案2】:

    您当然可以像在网站中一样在 Firefox OS 应用程序中从外部域读取数据。您可以使用不安全的 jsonp 读取它,也可以使用更安全的 CORS 读取它。如果您遵守内容安全策略 (CSP) 限制(这是最安全的),您将只能使用 CORS 等安全方法。

    没有什么能阻止您让 Firefox OS 应用程序像网站一样读取外部数据。但是,如果您想创建 privileged packaged app,则必须遵守 CSP。

    (抱歉缺少链接,Stack Overflow 不会让我添加更多。)

    【讨论】:

    • 也许 SO 不允许您添加更多链接,因为您的声誉较低,现在应该修改这点,因为我 +1 您的帖子。我知道 JSONP 和 CORS 方法,但不知道是否有一些“特权”模式可以绕过它们(类似于 Android 权限或更细化)。
    猜你喜欢
    • 1970-01-01
    • 2022-08-20
    • 2014-12-29
    • 1970-01-01
    • 2023-02-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-08
    相关资源
    最近更新 更多