2012-09-05 7 views
5

Mi código es el siguiente:AJAX - jQuery GET devolución de llamada no funcionaban, pero JSON acceso a archivos bien

$.get('http://files.mysite.com/data.json', function(data) { 
    console.log(data); 
}, "jsonp"); 

Cuando tomo una mirada dentro del menú Network de Firebug Veo una llamada válida a mi archivo JSON y cuando lo abro, contiene toda la información.

Pero el Console permanece en silencio. No hay señal de una llamada AJAX ni mi registro de data.

Mi llamada AJAX no está en el mismo dominio que mi archivo JSON. Es por eso que estoy usando jsonp

¿Alguna idea?

Respuesta

13

No estoy del todo seguro de cuál es tu problema, si obtienes un resultado pero la consola permanece en silencio, podrías tener problemas con el JSON en sí ... prueba JSONLint para encontrar problemas .

También le recomiendo que no utiliza getJSON etc.

$.ajax({ 
    url: http://files.mysite.com/data.json, 
    dataType: 'jsonp', 
    cache: false, 

    beforeSend: function() { 
     console.log("Loading"); 
    }, 

    error: function (jqXHR, textStatus, errorThrown) { 
     console.log(jqXHR); 
     console.log(textStatus); 
     console.log(errorThrown); 
    }, 

    success: function (data) { 
     console.log('Success'); 
     console.log(data); 
    }, 

    complete: function() { 
     console.log('Finished all tasks'); 
    } 
}); 

esta manera se obtiene un poco de manejo de errores y otras características poco agradables, se puede agregar un control de carga a través de beforeSend, y sacarlo a través completa :)

Editar: reemplazar la función de error con la de abajo, que nos debe dar una mejor idea de cuál es el problema :)

error: function (jqXHR, textStatus, errorThrown) { 
    console.log(jqXHR); 
    console.log(textStatus); 
    console.log(errorThrown); 
} 
+0

mi consola me dice lo siguiente: Carga error Object {readyState = 4, estado = 200, statusText = "éxito "} Finalizado todas las tareas - El menú de red aún carga el archivo, el contenido e interpreta el JSON ... – Ron

+0

y jsonlint me dice que mi JSON es válido – Ron

+0

¿Funciona correctamente la función de error, pero no la función de éxito? –

0

Es mejor usar $ .getJSON en lugar de obtener si sabe que la respuesta será json. La consola debería funcionar ahora

$.getJSON('http://files.mysite.com/data.json', function(data) { 
console.log(data); 
}); 
+1

sens de casos itive! Es '$ .getJSON()' – devnull69

0

no es compatible jsonp ver here, solamente XML, JSON, escritura, html a fin de utilizar JSON lugar si usted no tiene problema de la política a través de dominio

$.get('http://files.mysite.com/data.json', function(data) { 
    console.log(data); 
}, "json"); 
+0

desafortunadamente tengo un acceso de dominio cruzado ... – Ron

+0

@Ron en ese caso, use $ .ajax con tipo: "obtener", jsonp es compatible con el método ajax :) también, esta publicación ayudará http://devlog.info/2010/03/10/cross-domain-ajax/ –

Cuestiones relacionadas