我在我的网站中使用Google CDN包含jQuery:
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js" type="text/javascript"></script>
所有工作都按预期工作,但当我尝试使用任何网络代理在线访问时,例如Zend2或 Proxify,然后无法加载jQuery。根据所包含的jQuery版本和使用的Web代理,当浏览器尝试解析jquery.min(var未定义等)时,我们会在浏览器控制台中收到各种错误消息。
所有使用jQuery的网站,包括jQuery的网站本身,都有同样的问题。例如,尝试通过Web代理使用jQuery UI演示站点:无法使用jQuery UI小部件,请查看Web控制台中的所有错误消息。
我尝试了几十个代理,我发现其中只有一个能奇迹般地解析jQuery。
为什么jQuery不适用于大多数这些网络代理?有没有解决方法?谢谢!
答案 0 :(得分:0)
默认情况下,这些代理都会删除脚本。除了脚本之外,jquery.min.js中没有任何内容。在使用代理之前,请确保关闭“删除脚本”选项。
我使用和不使用代理下载了jquery.js(非缩小版),并对它们进行了差异化处理。它对代码进行了大量更改。其中一些只是语法上的变化,我认为不应该有任何影响,但有很多这样的:
location = window.location,
变为:
location = _proxy_jslib_handle(window, 'location', '', 0, 0),
它们都涉及替换各种内置Javascript机制的_proxy_jslib_XXX函数。我用Google搜索了它,发现它来自CGIProxy,这是大多数代理网站使用的脚本。也许它所做的改变与jquery不完全兼容。
你提出这个问题的正确位置可能就是他web site。这不是一个适合SO的编程问题。