我们花了三天时间仍无法解决一个奇怪的技术问题,所以我们需要你的帮助。
我们编写的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。
答案 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