在 TWebbrowser 中禁用同源策略

Posted

技术标签:

【中文标题】在 TWebbrowser 中禁用同源策略【英文标题】:Disable Same Origin Policy in TWebbrowser 【发布时间】:2014-07-07 16:08:32 【问题描述】:

我目前正在为我们的软件创建一个演示应用程序,它基本上是一个网站,只是在一个与 TWebbrowser 一起使用的 delphi 应用程序中交付,以防止用户做不必要的事情。 我通过 tubeplayer-plugin 嵌入了一些 youtube 视频,因此我得到了与“同源策略”相关的错误对话框。

在 IE 中,通常有一个禁用此策略的选项,有没有办法为 TWebbrowser 执行此操作? (See here 代表我所指的选项)

如果不是,我也很高兴听到有关如何防止此错误消息的其他想法(我无法更改导致错误的代码,所以请不要告诉我使用跨站点请求) .


编辑: 我知道 TWebbrowser 的“静默”选项,但该错误也会导致我的组件行为不端,所以这不是解决我的问题的真正解决方案...

【问题讨论】:

您是否分析了 HTTP 流量和 javascript 控制台(如果可用)以找出导致 SOP 错误消息的部分?由于 Youtube 可以嵌入到其他网页中,我不认为嵌入的 Youtube 对象是问题的原因。这使得 tubeplayer 插件成为一个潜在的原因。需要tubeplayer吗? 使用普通嵌入将是我最后的手段,因为我真的很喜欢 Tubeplayer 提供的功能......是的,错误来自插件内部,但我没有来源,所以我不知道到底是什么问题 【参考方案1】:

查看 FEATURE_CROSS DOMAIN_REDIRECT_MITIGATION http://msdn.microsoft.com/en-us/library/ie/ee330730(v=vs.85).aspx#xd_redirection 它解释了如何在注册表中禁用应用程序的选项。当您的应用程序启动时,在 HKEY_CURRENT_USER 中添加一些 delphi 代码来自动执行此操作应该可以解决问题。祝你好运。

【讨论】:

以上是关于在 TWebbrowser 中禁用同源策略的主要内容,如果未能解决你的问题,请参考以下文章

在 Mobile Safari 中禁用同源策略

在 Android Chrome 上禁用同源策略

禁用 Firefox 同源策略

在 Chrome 中禁用同源策略

Chrome:禁用本地主机的同源策略

禁用同源策略/在 WebKit WebViews 中创建跨域 XMLHttpRequests?