2012-03-15 8 views
8

Sto facendo questa richiesta ajax a un url, ma il server sta inviando una risposta Unrecognized token 'naejzraieale': was expecting 'null', 'true', 'false' or NaN at [Source: [email protected]; line: 1, column: 25].Il server non è in grado di analizzare un codice jSON valido

La mia richiesta Ajax si presenta così

$.ajax({url: "https://jsonparser.mydomain.com", 
     contentType: 'application/json', 
     type: "POST", 
     data :{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"]} 
}); 

EDIT: Si prega di notare Unrecognized token 'naejzraieale':. il j e r in questa stringa di errore proviene dalla proprietà name dell'oggetto che sto passando nei dati. Quando ho capitalizzare le lettere, ottengo (Unrecognized token 'naeJZRAIeale': was expecting 'null', 'true',)

+0

Prova la codifica dei dati. Se vedi qui: http://stackoverflow.com/questions/5263708/jquery-ajax-encoding-data, your contentType richiede la codifica – diaho

+0

Il server si aspetta dati in forma di JSON, richiede ancora la codifica? Qual è il tipo JSON MIME corretto comunque? –

+0

Prova a convalidare il tuo JSON con http://jsonformatter.curiousconcept.com/ probabilmente non è corretto. – bsimic

risposta

17

prima di inviare i dati al server è necessario codificare in formato JSON JSON.stringify e JSON.parse sono forniti da tutti i browser, ma se tutti i browser non supporta che poi si è possibile utilizzare un plugin jQuery per fare lo stesso http://code.google.com/p/jquery-json/, se si utilizza questo plugin quindi la sintassi sarebbe diverso un po '

$.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

Ma perché ho bisogno di unirlo? JQuery non lo fa da solo? –

+0

Anche se quello che hai suggerito ha funzionato, mi chiedo perché devo stringificare il mio JSON, jQuery non può farlo da solo? –

+1

nop jquery non lo fa da solo, e la cosa strana è che JQuery in modo nativo non supporta la conversione dei dati in formato JSON, per il fatto che devi usare un plugin o un oggetto JSON nativo del browser –

Problemi correlati