2012-06-13 15 views
5

Ecco il mio lato client codice jQuery:jQuery non sembra analizzare JSON automaticamente

$.ajaxSetup ({ 
    contentType: "application/json", 
    datatype: 'json' 
}); 

$.ajax({ 
    type: "POST", 
    url: "http://localhost:1234/path", 
    data: JSON.stringify(myData), 
    success: function(aString){ 
     alert(aString); 
    }, 
    error: function(errorData){ 
     alert(errorData); 
    } 
}); 

Ecco i dati al server invia:

200 
Content-Type: application/json 

"aStringsData" 

Nel avviso le quotazioni di " aStringData "vengono visualizzati. Tuttavia, mi aspetto che le virgolette vengano rimosse a causa del JSON.parse automatico che mi aspetto di ottenere dal tipo di dati: "json". Ho sbagliato su questo?

+2

JavaScript è case sensitive. 'dataType! == datatype'. – Matt

+0

Grazie mille, probabilmente non l'avrei capito in tranquillità da tempo .. – hansi

risposta

5

Il parametro è in realtà dataType, non datatype (JavaScript fa distinzione tra maiuscole e minuscole).

Si può provare con:

dataType: 'json' // not datatype 

all'interno del vostro ajaxSetup;

+0

@Matt grazie Sir – thecodeparadox

+0

Grazie, risolto il problema! – hansi

+0

@ansi prego, siamo lieti di aiutare – thecodeparadox

0

Risposta:

"aStringsData" 

non è valido JSON Credo, come supposto JSON per iniziare con un {, giusto ?.

Si potrebbe dire

{ 
"string": "data" 
} 
+0

errato. Una stringa da sola è * perfettamente * valido JSON. http://json.org – Matt

+0

Beh, può essere o un oggetto o una lista di cose (come una stringa), ma non una stringa in sé, vero? (Naturalmente, posso sbagliarmi, ma i primi 3 validatori ho provato lo stesso a dire lo stesso) – Nanne

+0

@matt: la pagina JSON che colleghi ha 2 punti bollettino: dicono che è un oggetto o una lista. C'è una definizione di "valore" in seguito, certo, ma non dice che il valore sia solo JSON valido mentre lo leggo. – Nanne

-1

si può provare a usare qualcosa di simile:

eval(aString) 
+0

Questo non viene * chiudi * per rispondere alla domanda. La domanda è chiedendo * perché * il JSON non viene analizzato automaticamente, non come farlo. – Matt

Problemi correlati