2012-03-15 19 views
8

Estoy haciendo esta solicitud de Ajax a una url, pero el servidor está enviando una respuesta Unrecognized token 'naejzraieale': was expecting 'null', 'true', 'false' or NaN at [Source: [email protected]; line: 1, column: 25].Servidor no puede analizar un json válido

Mi petición Ajax se parece a esto

$.ajax({url: "https://jsonparser.mydomain.com", 
     contentType: 'application/json', 
     type: "POST", 
     data :{name : "juzer ali", 
       email : "[email protected]mail.com", 
       how : "Used jQuery.ajax from google chromes developer console", 
       urls : ["https://chrome.google.com/webstore/search/passportpro",         "https://chrome.google.com/webstore/detail/ffimgldnoigmlcofmfkfcjechbdkipph", 
"https://github.com/juzerali", "https://docs.google.com/document/d/1BXOwXojdKwghZ3nvnfPeleEgjv0whJVWVXtQMwcXLiA/edit?pli=1", "authagentpro.appspot.com"]} 
}); 

EDIT: Por favor notar Unrecognized token 'naejzraieale':. el j y r en esta cadena de error proviene de la propiedad del nombre del objeto que estoy pasando en los datos. Cuando las letras en mayúscula la, consigo (Unrecognized token 'naeJZRAIeale': was expecting 'null', 'true',)

+0

Trate codificación de sus datos. Si ve aquí: http://stackoverflow.com/questions/5263708/jquery-ajax-encoding-data, su contentType requerirá la codificación – diaho

+0

El servidor está esperando datos en forma de JSON, ¿aún requiere codificación? ¿Cuál es el tipo JSON MIME correcto de todos modos? –

+0

Intente validar su JSON con http://jsonformatter.curiousconcept.com/, probablemente sea incorrecto. – bsimic

Respuesta

17

antes de enviar los datos al servidor que necesita para codificarla en formato JSON JSON.stringify y JSON.parse son proporcionados por los navegadores más recientes, pero si cualquier navegador no soporta que entonces puede utilizar un plugin de jQuery para hacer lo mismo http://code.google.com/p/jquery-json/, si se utiliza este plugin entonces la sintaxis sería diferente un poco

$.ajax({ 
     url: "https://jsonparser.mydomain.com", 
     type: 'POST', 
     contentType:'application/json', 
     data: JSON.stringify({name : "juzer ali", 
       email : "[email protected]", 
       how : "Used jQuery.ajax from google chromes developer console", 
       urls : ["https://chrome.google.com/webstore/search/passportpro",         "https://chrome.google.com/webstore/detail/ffimgldnoigmlcofmfkfcjechbdkipph", 
"https://github.com/juzerali", "https://docs.google.com/document/d/1BXOwXojdKwghZ3nvnfPeleEgjv0whJVWVXtQMwcXLiA/edit?pli=1", "authagentpro.appspot.com"]}), 
     dataType:'json' 
}); 
+0

¿Pero por qué tengo que escribirlo? ¿JQuery no lo hace solo? –

+0

Aunque lo que sugirió ha funcionado, me pregunto por qué tengo que codificar mi JSON, ¿no puedo jQuery hacerlo solo? –

+1

nop jquery no lo hace solo, y lo extraño es que JQuery no admite la conversión de datos al formato JSON, para eso tienes que usar un complemento o un objeto JSON nativo del navegador –

Cuestiones relacionadas