Estoy tratando de usar la función getJSON en jQuery para importar algunos datos y activar una función de devolución de llamada. La función de devolución de llamada no se ejecuta. Sin embargo, si intento lo mismo con la función get, funciona bien. Extrañamente, funciona con la función get incluso cuando paso "json" como tipo. ¿Por qué está pasando esto? Probé el siguiente archivo en Firefox 3 e Internet Explorer 7:la función de devolución de llamada no funciona cuando se usa la función getJSON en jQuery
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html><head>
<meta http-equiv='Content-Type' content='text/html; charset=UTF-8'>
<title>ajax test</title>
<script type="text/javascript" src="/jquery-1.3.2.min.js"></script>
</head>
<body>
<input type="button" id="test1" value="get">
<input type="button" id="test2" value="getJSON">
<input type="button" id="test3" value="get with json type">
<script type="text/javascript">
$("#test1").click(function() {
$.get("index.html",
function(response) {
alert('hi');
//works
}
)
});
$("#test2").click(function() {
$.getJSON("index.html",
function(response) {
alert('hi');
//doesn't work
}
)
});
$("#test3").click(function() {
$.get("index.html",
function(response) {
alert('hi');
//works
},
"json"
)
});
</script>
</body></html>
Esto parece ocurrir sin importar lo que puedo acceder a la URL, el tiempo que está en el mismo dominio. Traté de pasar algunos datos y eso no hace la diferencia.
Por supuesto que puedo evitar el problema utilizando la función get como lo hice en mi tercera función de prueba, pero todavía tengo curiosidad de por qué esto está sucediendo.
Sé que hay un similar question preguntado aquí pero no respondió mi pregunta.
¿Podría ser que el json esté mal formado? – karim79
¿Qué hay en index.html? – grammar31
Tal vez debería haber sido más claro. index.html es el archivo que publiqué anteriormente. Solo intento acceder al documento en sí, lo cual no es lo más útil. Simplemente lo puse porque era simple y conveniente. De nuevo, no parece importar lo que puse para la URL. ¿El json necesita ser válido? –