Problema de solicitud de Ajax: error 80020101
internet-explorer jsp (14)
¿Tienes alguna posibilidad de incluir un archivo js?
Porque
El error 80020101 significa que IE no puede compilar su script.
Tengo una solicitud que devuelve una página jsp. Pero el hecho es que el jsp incluye jsp: incluir en él (llama a otro archivo jsp) y es decir, da el error 80020101.
¿Algunas ideas?
Gracias
Ahora he encontrado este problema con jQuery (incluso la última versión) dos veces. La ÚNICA solución es copiar y pegar todo su javascript en un archivo grande y ejecutarlo a través de JSLint (jsfiddle.net, preferido). Pude señalar varios errores menores (incluida una coma adicional en una de mis estructuras de devolución de datos) que pude corregir y luego volver a copiar y pegar nuevamente en sus lugares originales para eliminar el problema.
Elimine las declaraciones de JavaScript que importa una secuencia de comandos mediante src-attribute. Cambie su archivo javascript a inline-javascript si realmente lo necesita allí.
Fuente: http://bytes.com/topic/javascript/answers/750333-ie-syntax-error-80020101-undefined-array
La manera más fácil sería agregar un parámetro a su solicitud AJAX como ajax = 1 y ocultar las declaraciones javascript cuando ajax -parameter existe está en la solicitud.
No creo que esto tenga nada que ver con incluir archivos con jsp: include ya que el navegador no sabe más que el HTML con el que lo arrojas.
En mi caso, el problema era coma inútil adicional en Ajax POST en la función de fin de error:
$.ajax({
type: ''POST'',
dataType: ''text'',
url: ''../Client/GetName'',
data: { ClientId: id},
success: function (respone) {
alert(respone);
},
error: function (xhr, ajaxOptions, thrownError) {
alert(xhr.statusText);
}, //<- look here, this guy complicated my simple programmer life
});
Después de eliminarlo todo funciona bien.
En mi caso, encontré que había un comentario HTML en mi código JS como:
<script type="text/javascript">
<!-- Unexpected Comment -->
//code...
</script>
Reemplacé <!-- -->
con /* */
y funcionó. Espero que ayude a alguien.
Experimenté este error al usar jQuery 1.10.2 y estaba cargando un archivo que no existía.
Así que asegúrese de que el archivo que intenta cargar es correcto, de lo contrario IE8 puede arrojar el error 80020101.
Me encontré con este problema y los mensajes de error de IE no fueron muy útiles. Entonces, visité mi sitio en Mozilla Firefox y Firefox pudo identificar la línea exacta de código problemático. No es una solución de alta tecnología, pero si solo ha utilizado IE para depurar este problema, intente cargar su sitio en FF (con la extensión Firebug instalada) y verificar la salida de la consola.
Me había equivocado al poner ''var'' delante de la declaración de variables, lo que permitió resolver el problema.
<script>
uploadDocument = "Some message";
</script>
Lo arreglé para:
var uploadDocument = "Some message";
La causa principal fue que tenía un elemento en el formulario con el mismo ID "uploadDocument", por lo tanto, la declaración anterior estaba causando que el html fuera mal formado.
Mis problemas fueron causados por:
var a = b = c = true;
vuelto a
var a = true;
var b = true;
var c = true;
¡Ahora funciona bien!
Bye MA
Obtuve este error por un problema diferente al usar jquery.
Cambiar $ (documento). Listo (función () {}) ; TO $ (ventana) .load (función () {});
Quería compartir mi experiencia. En mi caso, no tenía nada que ver con javascript. Fue debido a esta línea en el HTML de un compañero de trabajo que utiliza angular:
<img data-ng-model="previewImage" src="" data-ng-src="{{imageURL}}" alt="" ></img>
Recordé que tener un src vacío suele ser algo malo. Completé el campo src y el error desapareció.
También me encontré con este problema, pero después de ver detenidamente mi archivo de script, descubrí que cometí un pequeño error que se ejecuta sin problemas en otro navegador, pero IE lo elige y me muestra el error:
Mi código anterior era:
var autocomplete = new google.maps.places.Autocomplete(searchTextField ,options);
Después de analizar, obtuve que searchTextField
es id y tengo que obtener su valor antes de usarlo
Entonces lo cambio a:
var input = document.getElementById(''searchTextField'');
var autocomplete = new google.maps.places.Autocomplete(input,options);
y funciona bien
Es genial que IE lo detecte, pero Microsoft puede mejorar el navegador para mostrar un error específico por causa específica, porque es muy frustrante si el mismo código funciona en otros navegadores.
También puedes obtener este error si estás haciendo una llamada AJAX desde jQuery y pasas una coma extra al final de la matriz, así:
$.post(''http://example.com/example1/'',{
field1:sField1,
field2:sField2,
field3:sField3,
field4:sField4,
field5:sField5,
},function(sData){
if (console) { console.log(sData); }
});
¿Ves esa coma después de sField5? Ese es el error de sintaxis A ningún otro navegador le importará menos IE. IE arrojará el oscuro error 80020101 (que significa "no puede evaluar su Javascript, usted tiene un error de sintaxis") y será prácticamente desconcertante perseguirlo si está utilizando jQuery porque el depurador simplemente señalará la línea eval en jQuery. El depurador de IE no te servirá para perseguir esto, gracias a Microsoft. La próxima vez que obtenga el error 80020101, mis sugerencias son:
- Busque cualquier llamada AJAX y busque una coma adicional.
- Busque cualquier matriz (como cosas en llaves) donde hay una coma adicional al final.
- Si eso todavía no ayuda, entonces mira la técnica donde usas
<!--
y//-->
para marcar tu Javascript. Este ha sido un problema conocido con jQuery hasta 1.7.2 y sigue siendo un error archivado con el equipo de jQuery. - Vaya a la última versión de jQuery.
- Comience a eliminar material por pieza de su secuencia de comandos y agregue los elementos lentamente hasta que encuentre la pieza ofensiva del código.
Tuve el mismo error, pero en mi caso había una palabra reservada ''class''
. Aquí hay un fragmento de código para dejar esto en claro:
function foo(ajaxResponse){
$(elem).attr(''class'', ajaxResponse.class);
}
Reescribí esto como:
$(elem).attr(''class'', ajaxResponse[''class'']);
Espero que esto haya sido útil.