pac(proxy-auto-config)文件中的FindProxyForURL函数无法在IE浏览器中运行

时间:2013-04-17 04:23:48

标签: javascript internet-explorer browser pac autoproxy

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

我们编写的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文件中的函数获取完整的url,或者有一个方法在IE浏览器中调试pac文件。

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

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

2 个答案:

答案 0 :(得分:1)

请参阅http://support.microsoft.com/kb/271361

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

答案 1 :(得分:1)

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

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