【问题标题】:Setting "unsafe" headers in packaged app XHR在打包的应用程序 XHR 中设置“不安全”标头
【发布时间】:2016-03-26 01:49:54
【问题描述】:

我需要在我的打包应用程序中修改 XHR 请求中的 User-Agent 标头。当我这样做时,我收到错误:

拒绝设置不安全的标头“User-Agent”

我的应用程序已经拥有完整的套接字访问权限,所以我可以这样做。但这真的很烦人。

如果允许我在已经具有原始套接字访问权限的打包应用程序中设置此标头,那就太好了。

也许还有一些我不知道的其他 API 或权限? webRequest 似乎与这里无关。

【问题讨论】:

  • 我最终使用 chrome.socket 编写了一个“假”XHR 对象。这意味着它不适用于 HTTPS,因为 chrome.socket 仍然没有 TLS api。它不是很通用,但如果你想以此为基础,你可以在这里找到它github.com/kzahel/jstorrent/blob/fresh/js/chromesocketxhr.js
  • 我同意这很烦人,但是您确实可以免费获得 XHR 权限提示(“没有特殊权限”),因此从用户的角度来看需要权衡取舍。在 Chrome 应用中允许使用非 Chrome 标准的 XHR 可能需要一种类似于套接字 API 提示的特殊权限提示,这涉及到一个可能对任何人都没有好处的复杂用户体验领域。
  • 我忘记了 chrome.socket 权限非常精细且特定于主机,因此在授予这些权限时向 chrome 添加代码以绕过“不安全标头”检查可能会增加一些复杂性.不过,如果这样做会很酷。如果以这种方式完成,我认为不需要更改任何现有的用户体验。
  • 我明白你的意思,但我需要再考虑一下。为了我们不会忘记,请您在 crbug.com/new 提交问题并将其分配给我(miket at chromium)吗?

标签: google-chrome-app


【解决方案1】:

这似乎不太可能在 Chrome 平台上得到解决。因此,当我需要对我的 XMLHttpRequest 进行更多控制时,我会使用自己的 shim,我会在 Web Server for Chrome (github) 项目中保持最新状态。你可以看到它在这个example中使用

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-03-02
    • 1970-01-01
    • 1970-01-01
    • 2013-07-24
    • 1970-01-01
    • 2022-07-09
    • 2020-08-18
    相关资源
    最近更新 更多