2010-08-15 47 views
0

我似乎无法让所有的JavaScript功能对WebBrowser控件工作(下面的链接)在C++ WebBrowser控件中支持Javascript吗? - 同域绕行?

这可能可能是由于同域的问题 - 本地HTML文件有一些Ajax外部服务器上调用地址。有没有办法修改控件以省略相同的域名?

http://msdn.microsoft.com/en-us/library/aa752040(VS.85).aspx

+0

(评论不回答,因为不是直接答案)请不要使用WebBrowser控件。无论是否嵌入Internet Explorer都是一项重大的安全风险,绝不应在任何软件中使用。 – 2010-08-15 09:56:20

+0

那么为网站编写桌面包装的更好方法是什么? – ina 2010-08-15 21:03:29

回答

0

的XMLHttpRequest(AJAX)不起作用跨域,除非你的代理您的要求是在同一个域,虽然这不会对本地HTML文件的工作,从光盘上运行,而不服务器。

另一种方法是JSONP,它可以在任何地方工作。

看到:What is JSONP all about?

0

是的,你可以在主机上执行IInternetSecurityManager::GetSecurityId为脚本的URL要放在同一个域中返回相同的值。

+0

因为你是一个vC++ mvp,你对上面评论中提到的@Delan的安全问题有什么看法? – ina 2010-08-15 21:06:31

+0

WebBrowser控件设计为仅以完全信任方式工作。如果您针对不受信任的网站运行浏览器,我建议您以较低的完整性级别启动您的过程。有关详细信息,请参阅一体式代码框架的CreateLowIntegrityProcess示例。 – 2010-08-21 17:22:07