Серьезная проблема с безопасностью jQuery и ActiveX? - PullRequest
7 голосов
/ 10 февраля 2009

Кто-нибудь не заметил, что JQuery использует элементы управления ActiveX?

Когда пользователь ограничил свою безопасность activex, он получит всплывающие окна с подсказками и желтую полосу в верхней части окна браузера. -Этот параметр по умолчанию на серверах Windows. -Интернет-кафе не поддерживает Active X. Внутренние рабочие станции компании не поддерживают это.

Учитывая это, я не понимаю, как люди могут использовать JQuery в коммерческом приложении.

Используете ли вы JQuery в коммерческом приложении? Вас это касается? Как вы думаете, я должен быть обеспокоен этим?

Ответы [ 6 ]

15 голосов
/ 10 февраля 2009

Единственное место, где ActiveX упоминается в коде jQuery, относится к ActiveXObject, используемому для запросов XMLHttp:

// Create the request object; Microsoft failed to properly
// implement the XMLHttpRequest in IE7, so we use the ActiveXObject when it is available
var xhr = window.ActiveXObject ? new ActiveXObject("Microsoft.XMLHTTP") : new XMLHttpRequest();

Здесь есть открытая проблема ... кажется, что jQuery не отступает от использования собственного XMLHttpRequest на IE7 (это, вероятно, то, что вы испытываете).

Также это может помочь: ссылка

6 голосов
/ 10 февраля 2009

jQuery, как и большинство библиотек, поддерживающих AJAX, будет использовать ActiveX для создания объекта XMLHttpRequest при работе в IE. Потому что так вы получаете объект XMLHttpRequest в IE. Если вы отключите его, вы не получите AJAX.

Так что нет, не беспокойся об этом. Если вы не используете AJAX, у вас не будет проблем в системах, где ActiveX отключен; в противном случае у вас будут проблемы независимо от библиотеки, если только вы не используете обходной путь, например использование фреймов для отправки фоновых запросов.

2 голосов
/ 10 февраля 2009

В дополнение к причинам , почему jQuery может использовать ActiveX (т.е. AJAX), вы также должны учитывать, что не все случаи использования jQuery для функциональности AJAX.

0 голосов
/ 23 февраля 2012

У меня была такая же проблема с магазином, который выполняет запросы ajax, поэтому я изменил свой файл jquery, чтобы принудительно загрузить XMLHttpRequest, т.е. 9

поиск:

var l = window.ActiveXObject ? new ActiveXObject("Microsoft.XMLHTTP") : new XMLHttpRequest();

заменить его на:

var isIE9 = navigator.userAgent.match(/MSIE 9.0/i) != null;
if(isIE9)
   var l = new XMLHttpRequest();               
else
   var l = window.ActiveXObject ? new ActiveXObject("Microsoft.XMLHTTP") : new XMLHttpRequest();
0 голосов
/ 12 июля 2011

Не уверен, относится ли это к вашему случаю / вопросу, но я заметил, что конфликты версий jQuery приводят к этой проблеме, почти по умолчанию, и если вы управляете большим сайтом, который состоит из нескольких компонентов (например, портала, CMS) и т. д.) вы можете непреднамеренно использовать несколько версий jQuery одновременно. В моем случае это всегда вызывало всплывающее окно безопасности ActiveX в IE 7.

0 голосов
/ 16 мая 2009

Независимо от функциональности AJAX в IE, в jQuery 1.3.2 была проблема, из-за которой этот баннер отображался при начальной загрузке jQuery, даже если вы ничего с ним не делали. См отмечен галочкой # 4017 . Эта проблема была решена в changeset # 6268 и будет устранена в jQuery 1.3.3 после ее выпуска.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...