【问题标题】:Chrome Remote Debugging - Cross DomainChrome 远程调试 - 跨域
【发布时间】:2014-06-13 23:56:54
【问题描述】:

我通过使用--remote-debugging-port 开关打开Chrome 来远程调试Chrome,如here 所述。

我有另一个页面在不同的端口上运行(也在我的本地主机上)并向:http://localhost:9222/json 发出 HTTP 请求。由于请求是从不同的端口发出的,因此由于跨域问题(“No Access-Control-Allow-Origin”)而失败。

我能否以某种方式更改 Chrome 远程调试器的 localhost 服务器标头以支持跨域?我只需要找到一种方法从不同的主机调用http://localhost:9222/json...

【问题讨论】:

  • this 可能是您要找的吗?
  • 不,因为我无法运行任何扩展程序(使用 --disable-extensions 运行 Chrome)

标签: google-chrome google-chrome-devtools remote-debugging


【解决方案1】:

我认为这是不可能的。我也需要这个功能。我尝试使用标志“--disable-web-security”和“--allow-file-access-from-files”启动chrome(我想调试)。当我尝试从另一个端口访问页面“localhost:9222/json”时说“localhost:8000”,它会抛出错误http://pastebin.com/JHYy8uLk

然而,这可以使用一个接受获取请求的中间人(服务器)来完成。页面 localhost:8000 可以向该中间人发送“get”请求,该中间人将从 localhost:9222/json 获取 json 数据(不违反同源策略),并将此数据返回给 localhost:8000。

由于我的 localhost:8000 在 Django 服务器上运行,我可以使用服务器本身从 localhost:9222/json(即 django 控制器)获取数据。

【讨论】:

    【解决方案2】:

    我的做法是使用开关 --disable-web-security 运行 Chrome,该开关覆盖同源策略的实施。这种解决方案显然有其缺点(例如,通知栏说稳定性和安全性会受到影响),但就我的需要而言,目前它似乎已经足够好了。

    【讨论】:

      【解决方案3】:

      您应该以“allow-file-access-from-files”模式启动 Chrome 以解决此问题。

      有关allow-file-access-from-files 模式的更多详细信息,请参见此处: How to launch html using Chrome at "--allow-file-access-from-files" mode?

      【讨论】:

      • 谢谢Billy 是啊,但我觉得不能解决我的问题:localhost:9222/json 中的资源无法作为本地文件打开(http 协议无法替换)我相信以任何方式使用 file://)。我正在尝试从可以在 localhost 服务器上运行或作为本地文件运行的页面访问此资源,但我认为这并不重要,因为我尝试访问的资源 (localhost:9222/json) 是不是文件。我错了吗?
      • 是的,我做到了。没用。
      猜你喜欢
      • 2010-09-06
      • 2013-06-15
      • 2011-06-21
      • 1970-01-01
      • 2011-05-12
      • 2013-11-27
      • 2013-12-28
      • 2011-01-18
      • 2011-02-16
      相关资源
      最近更新 更多