【问题标题】:Can we use jQuery framework through an online web proxy我们可以通过在线网络代理使用 jQuery 框架吗
【发布时间】:2012-10-06 10:00:17
【问题描述】:

我使用 Google CDN 在我的网站中包含 jQuery:

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js" type="text/javascript"></script>

一切都按预期工作,但是当我尝试使用任何网络代理在线访问它时,例如Zend2Proxify,则无法加载 jQuery。根据包含的 jQuery 版本和使用的网络代理,当浏览器尝试解析 jquery.min(var 未定义等)时,我们会在浏览器控制台中收到各种错误消息。

所有使用 jQuery 的网站,包括 jQuery 的网站本身,都有同样的问题。例如,尝试通过 Web 代理使用 jQuery UI 演示站点:无法使用 jQuery UI 小部件,请在 Web 控制台中查看所有错误消息。

我尝试了几十个代理,我只发现一个能够奇迹般地解析 jQuery。

为什么 jQuery 不能与这些网络代理中的大多数一起工作?有什么解决方法吗?谢谢!

【问题讨论】:

    标签: jquery proxy include webproxy


    【解决方案1】:

    默认情况下,这两个代理都会删除脚本。 jquery.min.js 中除了脚本之外什么都没有。确保在使用代理之前关闭“删除脚本”选项。

    我下载了带代理和不带代理的 jquery.js(未缩小),并对它们进行了区分。它对代码进行了大量更改。其中一些只是我认为不会产生任何影响的句法变化,但还有很多这样的:

    location = window.location,
    

    变成:

    location =  _proxy_jslib_handle(window, 'location', '', 0, 0),
    

    它们都涉及替换各种内置 Javascript 机制的 _proxy_jslib_XXX 函数。我用谷歌搜索了一下,发现它来自 CGIProxy,这是大多数代理网站使用的脚本。也许它所做的更改与 jquery 不完全兼容。

    他的web site 可能是您提出此问题的正确位置。这不是真正适合 SO 的编程问题。

    【讨论】:

    • 感谢 Barmar,但显然我在 30 多个网络代理上关闭了“删除脚本”选项,但它不起作用。您可以在任何 jquery 网站上轻松尝试此操作。此外,jquery.min 是通过代理包含的,没有被删除,但由于未知原因无法解析。
    • 感谢 Barmar 的这次更新,我没有意识到这些代理也必须“代理”javascript 库,并即时应用这种更改。我将此问题邮寄给 CGIProxy 开发者。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-18
    相关资源
    最近更新 更多