AJAX - Error con JSON

   
Vista:

Error con JSON

Publicado por Roberto (2 intervenciones) el 01/01/2016 13:22:48
Tengo esto en un función:
1
2
3
4
5
6
7
8
//---------------------
archivoValidacion = "http://i.nuged.es/login.pro?jsoncallback=?"
	$.post( archivoValidacion, { usuario:datosUsuario ,password:datosPassword})
	.done(function(respuestaServer) {
		alert(respuestaServer)
		alert("Generado en: " + respuestaServer.hora + "\n" +respuestaServer.generador)
 
//----------------
los alert son de comprobación, el respuestaServer da:

1
{"mensaje":"Perfecto","validacion":"ok", "hora":"ahora","generador":"yo mismo"}

Esto es un JSON verdad??

pero el segundo da:

Generado en: undefined
undefined


Ayuda por favor???.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Vainas

Error con JSON

Publicado por Vainas (71 intervenciones) el 01/01/2016 14:26:04
Buenas:

Esto es un JSON verdad??

Es un JSON. Lo que no significa que sea un objeto de javascript.


un JSON es un texto o un string con las caracteristicas que distes. De entrada jQuery deberia reconocer que es un json y convertirlo en objeto de javascript para que puedas acceder a el como dices (respuestaServer.hora).

Si eres tu el que crea el PHP (por poner un lenguaje en el lado del servidor, que puede ser tambien ASP por ejemplo) deberias poner algo como:

1
header('Content-type: application/json; charset=utf-8' );

Para que jQuery reconozca que es un json, y no solo eso sino que lo transforme como dije mas arriba.

Otra de las cosas que puedes hacer es forzar en jQuery que lo que regresa el servidor es un json:

1
$.post( archivoValidacion, { usuario:datosUsuario ,password:datosPassword}, null, 'json').done...

Acuerdate de poner null como 3er parametro ya que seria la function success (Aqui tienes la documentacion: http://api.jquery.com/jquery.post/).

Antes de todo lo anteior puedes comprobar que desvuelve el servidor (el tipo de dato):

1
alert(typeof respuestaServer);

Como ultimo puedes pasar un objeto de tipo json a objeto javascript con:

1
var obj = JSON.parse(respuestaServer);

Espero que algo de esto te sirva.

Feliz año!!

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

Error con JSON

Publicado por Roberto (2 intervenciones) el 01/01/2016 15:43:49
Perfecto, muchas gracias Vainas
¡¡¡ Feliz año 2016 !!!❤️
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar