是否可以在不完全禁用JavaScript的情况下禁用AJAX?

时间:2008-11-07 16:02:00

标签: javascript ajax

是否可以在不完全禁用JavaScript的情况下禁用AJAX?

8 个答案:

答案 0 :(得分:17)

如果您使用的是Firefox,则可以使用GreaseMonkey完成此操作。 (https://addons.mozilla.org/en-US/firefox/addon/748

GM是一个将脚本应用于您访问的部分或全部页面的框架。我有通用脚本来禁用谷歌分析下载(因为它们减慢了速度),并禁止谷歌结果页面上的谷歌点击跟踪(因为它让我感到困扰,他们正在这样做)。

这是我的google-click禁用脚本:

// ==UserScript==
// @name           Google Clk
// @namespace      googleclk
// @description    Disable Google click tracking
// @include        http://*google.com/*
// ==/UserScript==
// Override google's clk() function, which reports all clicks back to google
unsafeWindow.clk = function(url) {} // { alert(url); } // I use this to test.

通过执行与XMLHttpRequest(和其他函数)类似的操作,您可以有效地禁用它们。当然,你可以通过这样做完全打破页面,但你已经知道了。

答案 1 :(得分:7)

您可以替换浏览器工具,使AJAX(XMLHttpRequest对象)与您自己的无效。

XMLHttpRequest = function(){}
XMLHttpRequest.prototype = {
    open: function(){},
    send: function(){}
}

确保在任何AJAX调用之前执行替换代码。

这适用于通过XMLHttpRequest对象实现AJAX但不适用于IE的任何浏览器。对于IE,如果可能,您可能必须重载CreateObject()函数...

答案 2 :(得分:5)

在IE中,这可以通过以下方式完成:工具 - >互联网选项 - >高级选项卡 - >向下滚动到安全性 - >取消选中“启用本机XMLHTTP支持”。

http://msdn.microsoft.com/en-us/library/ms537505%28v=vs.85%29.aspx

答案 3 :(得分:4)

AJAX只是在Javascript中使用XMLHttpRequest函数。您可以通过安全设置锁定对此功能的访问权限,具体取决于您的浏览器。 至少在Firefox中,你可以通过使用自定义扩展来禁用它。

答案 4 :(得分:2)

对于已经回答的问题,这是一个迟到的评论,但为了来自Google的人的利益:

使用Firefox的Tab Permissions扩展名,您可以使用右键单击上下文菜单禁用特定选项卡的JavaScript(而不是所有选项卡的全局选项卡)。我配置了“权限”菜单项来切换“重定向”和“JavaScript”,所以如果我偶然发现了一个烦人的刷新和AJAX的页面,我可以快速轻松地关闭行为不当选项卡的带宽活动,而不会影响JavaScript在我的其他打开标签上。

答案 5 :(得分:0)

只有你可以禁用任何其他功能 - 可能会发现一些可能会干扰或破坏javascript的kludges或hack,但我们希望不会发现这样的漏洞。

我会在黑暗中疯狂地猜测你是否试图在某种不受信任的用户输入中阻止Ajax?在这种情况下,你最好的选择是通过提及Ajax来避免过度指定你的搜索参数,而是搜索'sanitize javascript','user javascript safe'......那种事情。

答案 6 :(得分:0)

除了Firefox建议之外,您可以在IE中将其作为禁用ActiveX的副作用。同样在IE7 +上你必须禁用'Native XMLHttpRequest'选项。

答案 7 :(得分:-2)

没有。 AJAX只是javascript的一个特殊用途。

如果您可以阻止特定功能回调到服务器,您可能会这样做,但您可能需要编辑浏览器。

我假设你想从客户端做到这一点......你能列出一些更具体的目标吗?预期结果是什么?