2009-02-10 7 views
7

¿Alguien ha notado que JQuery usa controles ActiveX?¿Un problema serio con la seguridad de jQuery y ActiveX?

Cuando un usuario ha limitado su seguridad activex obtendrá ventanas emergentes de guiones y una barra amarilla en la parte superior de la ventana de su navegador. : esta configuración está predeterminada en los servidores de Windows. -Internet Cafe no es compatible con Active X. -Estaciones de trabajo internas de la empresa no son compatibles con esto.

Considerando esto, no veo cómo las personas pueden usar JQuery en una aplicación comercial.

¿Utiliza JQuery en una aplicación comercial? ¿Esto te preocupa? ¿Crees que debería preocuparme por esto?

Respuesta

15

único lugar donde ActiveX se menciona en el código jQuery es para el ActiveXObject que se utiliza para XMLHttpRequests:

// 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(); 

Hay una abierta issue here ... parece como jQuery no reserva para utilizar el XMLHttpRequest nativa en IE7 (esto es probablemente lo que estás experimentando).

También esto podría ayudar: link

6

jQuery, como la mayoría de las bibliotecas que proporcionan soporte para AJAX, utilizará ActiveX para crear el objeto XMLHttpRequest cuando se ejecuta en IE. Porque así es como obtienes un objeto XMLHttpRequest en IE. Si lo deshabilita, entonces no obtiene AJAX.

Así que no, no te preocupes. Si no usa AJAX, entonces no tendrá problemas en los sistemas donde ActiveX está deshabilitado; si lo hace, entonces tendrá los problemas independientemente de de la biblioteca, a menos que utilice una solución temporal, como el uso de iframes para enviar solicitudes en segundo plano.

2

Además de las razones por qué jQuery podría tener que utilizar ActiveX (es decir, AJAX), también se debe considerar que no todos los usos de jQuery son para la funcionalidad de AJAX.

0

Independientemente de la funcionalidad de AJAX en IE, había un problema en jQuery 1.3.2 que causaba que el banner se mostrara cuando se cargaba inicialmente jQuery, incluso si no hacía nada con él. Ver ticked #4017. El problema se resolvió en changeset #6268 y se tratará en jQuery 1.3.3 cuando se publique.

0

No estoy seguro de si esto se aplica a su caso/pregunta, pero he notado que los conflictos de versiones de jQuery conducen a este problema, casi de manera predeterminada, y si está administrando un sitio grande compuesto de varios componentes (es decir, portal CMS, etc.) es posible que inadvertidamente esté utilizando múltiples versiones de jQuery a la vez. En mi caso esto siempre causó la ventana emergente de seguridad de ActiveX en Internet Explorer 7.

0

que tenía el mismo problema con una tienda que hacer peticiones Ajax, así que cambió mi archivo de jQuery para forzar XMLHttpRequest carga en IE 9

búsqueda de :

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

sustituirlo por:

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(); 
Cuestiones relacionadas