【问题标题】:The function FindProxyForURL in pac (proxy-auto-config) file can not work in IE browserpac (proxy-auto-config) 文件中的 FindProxyForURL 函数在 IE 浏览器中无法使用
【发布时间】:2013-04-09 17:00:03
【问题描述】:

我们花了三天时间仍然无法解决一个奇怪的技术问题,所以我们需要您的帮助。

我们编写的 pac (proxy-auto-config) 文件在所有其他浏览器中都可以正常工作,除了 IE(Internet Explorer)。

请求地址是

https://news.google.com.hk/nwshp?hl=zh-CN&tab=wn

如果 pac 文件是

function FindProxyForURL(url, host) {

    if(/news/i.test(url)) return "PROXY 127.0.0.1:8087";

    return  "DIRECT";
}

没错,就是使用代理访问网站。

但是如果 pac 文件更改为

function FindProxyForURL(url, host) {

    if(/CN/i.test(url)) return "PROXY 127.0.0.1:8087";

    return  "DIRECT";

}

CN,也在网址中。但 IE 并不像我们想象的那样使用代理访问网站。

但是我们在其他浏览器如Chrome、Safari、Firefox 中测试,它们都运行良好,它们都使用代理访问网站。

好像在IE中,函数FindProxyForURL(url, host)中的参数“url”不是url的完整路径,它只是包含主机,但在其他浏览器中是完整的url。

这个问题我们花了3天,你有什么想法让IE pac文件中的函数获取完整的url,或者有办法在IE浏览器中调试pac文件。

我们甚至无法在浏览器中提醒信息。

我们的 IE 版本是 10,Windows 8。

【问题讨论】:

    标签: javascript internet-explorer browser pac autoproxy


    【解决方案1】:

    http://support.microsoft.com/kb/271361

    您需要将 HKEY_CURRENT_USER\Software\Policies\Microsoft\Windows\CurrentVersion\Internet Settings\EnableAutoProxyResultCache 设置为 DWORD 0。

    【讨论】:

    • 我已创建此密钥,但没有任何反应,代理仍然无法正常工作
    • 这是正确答案(我为 WinINET 拥有此区域); IE 根据第一次命中缓存代理。更改此密钥后,您可能需要重新启动。
    【解决方案2】:

    对于未来的研究,以及任何偶然发现这个线程的人,这个微软博客,描述了为什么这不起作用,这是因为最近 IE 11 如何使用代理发生了一些变化。

    http://blogs.msdn.com/b/ieinternals/archive/2013/10/11/web-proxy-configuration-and-ie11-changes.aspx

    【讨论】:

    • 您应该避免只发布外部链接。请编辑您的帖子并使内容独立,以防外部链接失效...
    猜你喜欢
    • 1970-01-01
    • 2016-11-08
    • 1970-01-01
    • 2015-06-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多