¿Cómo obtengo la respuesta JSON sin formato de una solicitud jQuery $.getJSON()
?
Solo quiero imprimir la respuesta bruta en un diálogo alert()
en mi navegador?
¿Cómo obtengo la respuesta JSON sin formato de una solicitud jQuery $.getJSON()
?
Solo quiero imprimir la respuesta bruta en un diálogo alert()
en mi navegador?
Si está utilizando JSONP, esto es fundamentalmente imposible.
Si está enviando una solicitud normal a su dominio, reemplace getJSON
con get
.
No estoy usando JSONP. Intenté su sugerencia y acabo de mostrar '[Object Object]'. – Kev
@Kev: prueba agregar 'dataType: 'text''. – SLaks
Después de una cantidad de "pedos", eso funciona. Significa un paso adicional para luego analizar la cadena de un objeto, pero luego '$ .dump()' o 'JSON.stringify() 'es un paso extra en el otro sentido. – Kev
http://api.jquery.com/jQuery.getJSON/
Yo prefiero usar los métodos .ajax lleno, así que no tengo que recordar las diversas firmas de las abstracciones.
Los documentos dirá esto es equivalente a getJSON:
$.ajax({
url: url,
dataType: 'json',
data: data,
success: callback
});
donde se puede tener:
function callback(data) {
alert(data);
}
recomiendo encarecidamente que utilice Firefox y Firebug con console.log(); para este tipo de cosas Las alertas te vuelven loco después de un tiempo.
Editar
Sobre la base de las otras respuestas, puedo ser mal entendido su pregunta! Siempre puedes usar Fiddler para ver la respuesta sin formato.
Es la cadena de json sin procesar que apareció en el cable que quiero imprimir. Era solo para que yo pudiera hacer una rápida y hacky depuración para verificar el valor de una matriz. Pero gracias de todos modos. – Kev
Firebug es el camino a seguir en ese momento. Simplemente cambie a la devolución de llamada de la función (datos) {console.log (data);} para ver el objeto completo devuelto. – ScottE
'console.log()' sigue volcando los datos como si fuera un objeto, no es lo que estoy buscando. No puedo ver el JSON en bruto (llaves, corchetes, nombres de campo, verrugas y todo). Fiddler funciona, pero quería incluirlo en un cuadro de texto 'secreto'. – Kev
Terminé usando la característica JSON.stringify()
en https://github.com/douglascrockford/JSON-js/blob/master/json2.js.
No es ideal porque se está cargando otro archivo javascript, pero sirve para mi propósito.
A partir de jQuery 1.5 el objeto jqXHR se pasa como tercer argumento del método de devolución de llamada. El objeto jqXHR tiene una propiedad de texto de respuesta que contiene la cadena JSON sin formato.
function callback(data, status, jqXHR) {
alert(jqXHR.responseText);
// or console.log(jqXHR.responseText);
}
Sí, esto es muy útil cuando se trata de errores: '.fail (función (jqxhr, textStatus, error) { console.error (" Respuesta fue: "+ jqxhr.responseText); });' –
Hay una serie de diferentes opciones para conseguir la respuesta real ya sea el JSON que se analiza o el error generado por el navegador/servidor que el método 'getJSON' trató de analizar, pero fracasó.
Nota: con el método '. Siempre' los parámetros cambian en función de la falla o el éxito.
$.getJSON(getData.php, function(data,textStatus,jqXHR) {
console.log(jqXHR.responseText);
//As of 1.5 we have these methods:
}).always(
function(jqXHR, textStatus, errorThrown) { //on failure
console.log(jqXHR.responseText);
}).always(
function(data, textStatus, jqXHR) { //on success
console.log(jqXHR.responseText);
}).fail(
function(jqXHR, textStatus, errorThrown) {
console.log(jqXHR.responseText);
//As of 1.8 we have this method also:
}).then(
function(data, textStatus, jqXHR) {
console.log(jqXHR.responseText);},
function(jqXHR, textStatus, errorThrown) {
console.log(jqXHR.responseText);
});
Si desea más información, visite:
http://api.jquery.com/jQuery.ajax/#jqXHR o
http://api.jquery.com/category/deferred-object/
Debe utilizar algo así como Firebug para ver el JSON prima. Es mucho más útil que alertar algo. – JAL
@alex sí, lo sé. Pero este es el precursor de un cuadro de texto oculto para que ciertos usuarios puedan mostrarlo y copiar/pegar la respuesta en un correo electrónico. Larga historia. – Kev