是否可以在不禁用JavaScript的情况下禁用AJAX?
如果您使用的是Firefox,你可以用的GreaseMonkey做到这一点。 (https://addons.mozilla.org/en-US/firefox/addon/748)
GM是一个将脚本应用到您访问的部分或全部网页的框架。我有通用汽车脚本禁用谷歌分析下载(因为他们放慢速度),并禁用谷歌结果页上的谷歌点击跟踪(因为它困扰我,他们这样做)。
这里是我的谷歌单击禁用脚本:
// ==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(和其他功能)类似的东西,你可以有效地禁用它们。当然,你可以通过这样做彻底打破页面,但你已经知道这一点。
号AJAX只是一个特定的JavaScript的使用。
如果您可以阻止特定功能回拨到服务器,您可能可以这样做,但您可能需要编辑您的浏览器。
我假设你想从客户端做到这一点...你可以列出一些更具体的目标是什么?预期的结果是什么?
AJAX是简单的Javascript了XMLHttpRequest函数的用法。根据您的浏览器,您可以通过安全设置锁定对此功能的访问权限。 至少在Firefox中,您可以通过使用自定义扩展来禁用它。
没有比你可以禁用任何其他功能更多 - 可能会发现一些可能会干扰或破坏JavaScript的杂凑或黑客,但我们希望不要找到这样的漏洞。
我会在黑暗中进行狂野的刺探,并猜测您试图阻止某些类型的不可信用户输入中的Ajax?在这种情况下,最好的办法是避免通过提及Ajax来过多指定搜索参数,而是搜索'sanitize javascript','user javascript safe'......这样的事情。
可以更换浏览器的工具,自己什么也不做,使AJAX(XMLHttpRequest对象)。
XMLHttpRequest = function(){}
XMLHttpRequest.prototype = {
open: function(){},
send: function(){}
}
确保您的替换代码在任何AJAX调用之前执行。
这适用于任何通过XMLHttpRequest对象实现AJAX但不适用于IE的浏览器。对于IE,如果可能的话,你可能必须重载CreateObject()函数...
除了Firefox的建议,你可以在IE中做它作为禁用ActiveX的副作用。同样在IE7 +上,你必须禁用'Native XMLHttpRequest'选项。
这是已经被回答的问题一晚发表评论,但对于人们从谷歌进入的好处:
随着Tab Permissions Firefox扩展,你可以为特定的标签禁用JavaScript的(而不是通过右键单击上下文菜单,可以在全局范围内使用所有选项卡)我配置了“权限”菜单项以切换“重定向”和“JavaScript”,因此如果我偶然发现恼人的刷新和AJAX页面,我可以快速轻松地关闭不当标签的带宽活动,而不会影响JavaScript在我的其他公开标签上。
在IE中,可以通过以下方式完成:工具 - > Internet选项 - >高级选项卡 - >向下滚动到安全性 - >取消选中“启用本机XMLHTTP支持”。
http://msdn.microsoft.com/en-us/library/ms537505%28v=vs.85%29.aspx
手册滴注指令:http://wiki.greasespot.net/Greasemonkey_Manual:Installing_Scripts – user956584 2012-12-09 19:33:13
Chrome专用的等效扩展名是[Tampermonkey](https://chrome.google.com/webstore/detail/ tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo) – 2014-06-19 08:01:58