Подтвердить что ты не робот

Можно ли отключить AJAX без полного отключения JavaScript?

Можно ли отключить AJAX без полного отключения JavaScript?

4b9b3361

Ответ 1

Если вы используете Firefox, вы можете выполнить это с помощью GreaseMonkey. (https://addons.mozilla.org/en-US/firefox/addon/748)

GM - это основа для применения сценариев к некоторым или ко всем страницам, которые вы посещаете. У меня есть сценарии GM, которые отключают загрузку google-analytics (потому что они замедляют работу) и которые отключают отслеживание google-кликов на страницах результатов Google (потому что это беспокоит меня, что они это делают).

Вот мой google-click disable script:

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

Выполняя что-то подобное с XMLHttpRequest (и другими функциями), вы можете эффективно отключить их. Конечно, вы можете полностью сломать страницу, сделав это, но вы уже это знали.

Ответ 2

Вы можете заменить инструмент браузера, чтобы сделать объект AJAX (объект XMLHttpRequest) своим, что ничего не делает.

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

Убедитесь, что ваш код замены выполняется перед вызовом AJAX.

Это будет работать для любого браузера, который реализует AJAX через объект XMLHttpRequest, но не будет работать для IE. Для IE вам, возможно, придется перегрузить функцию CreateObject()...

Ответ 3

В IE это можно сделать с помощью: "Инструменты" → "Свойства обозревателя" → "Расширенная вкладка" → "Прокрутка вниз" до "Безопасность" → "Снимите флажок" "Включить основную поддержку XMLHTTP".

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

Ответ 4

AJAX - это просто использование функции XMLHttpRequest в Javascript. В зависимости от вашего браузера вы можете заблокировать доступ к этой функции с помощью своих настроек безопасности. По крайней мере, с помощью Firefox вы можете отключить его либо с помощью пользовательского расширения.

Ответ 5

Это поздний комментарий по вопросу, на который уже был дан ответ, но в интересах людей, приезжающих из Google:

С расширением Расширение вкладки для Firefox вы можете отключить JavaScript для определенной вкладки (в отличие от глобально для всех вкладок) с правом -ключить контекстное меню. Я настроил пункт меню "Разрешения" для переключения "Переадресация" и "JavaScript", поэтому, если я наткнулся на страницу с раздражающими обновлениями и AJAX, я могу быстро и просто отключить активность полосы пропускания на вкладке "Ошибки", не затрагивая JavaScript на других открытых вкладках.

Ответ 6

Не более, чем вы можете отключить любую другую функцию - могут быть обнаружены какие-то клопы или хаки, которые могут помешать или сломать javascript, но мы надеемся не находить таких уязвимостей.

Я возьму дикий удар в темноте и угадаю, что вы пытаетесь остановить Ajax в ненадежном пользовательском вводе какого-то рода? Лучше всего в этом случае было бы избежать чрезмерного указания параметров поиска, указав Ajax, скорее, поискать "sanitize javascript", "безопасный пользовательский JavaScript"... такого рода вещи.

Ответ 7

В дополнение к предложению Firefox вы можете сделать это в IE как побочный эффект отключения ActiveX. Также на IE7 + вам нужно отключить параметр "Исходный XMLHttpRequest".

Ответ 8

Нет. AJAX - это просто использование javascript.

Если вы можете заблокировать конкретный вызов функции на сервере, вы можете это сделать, но вам, вероятно, придется редактировать браузер.

Я предполагаю, что вы хотите сделать это со стороны клиента... Можете ли вы перечислить некоторые более конкретные цели? Каков ожидаемый результат?