Impossibile ricevere JSON dalla chiamata Ajax JQuery
Domanda
Ho determinato che il mio JSON, proveniente dal server, è valido (effettuando manualmente la chiamata ajax), ma mi piacerebbe davvero utilizzare JQuery.Ho anche determinato che l'URL del "post", inviato al server, è corretto, utilizzando firebug.Tuttavia, la richiamata dell'errore viene ancora attivata (errore di analisi).Ho anche provato il tipo di dati:testo.
Ci sono altre opzioni che dovrei includere?
$(function() {
$("#submit").bind("click", function() {
$.ajax({
type: "post",
url: "http://myServer/cgi-bin/broker" ,
datatype: "json",
data: {'start' : start,'end' : end},
error: function(request,error){
alert(error);
},
success: function(request) {
alert(request.length);
}
}); // End ajax
}); // End bind
}); // End eventlistener
Soluzione
Ecco alcuni suggerimenti che proverei:
1) l'opzione 'datatype' che hai specificato dovrebbe essere 'dataType' (credo con distinzione tra maiuscole e minuscole)
2) prova a utilizzare l'opzione 'contentType' in questo modo:
contentType: "application/json; charset=utf-8"
Non sono sicuro di quanto possa essere d'aiuto poiché viene utilizzato nella richiesta all'URL del tuo post, non nella risposta.Vedi questo articolo per maggiori informazioni: http://encosia.com/2008/06/05/3-mistakes-to-avoid-when-using-jquery-with-aspnet-ajax(È scritto per asp.net, ma potrebbe essere applicabile)
3) Controlla tre volte l'output dell'URL del tuo post ed esegui l'output tramite un validatore JSON solo per essere assolutamente sicuro che sia valido e possa essere analizzato in un oggetto JSON. http://www.jsonlint.com
Spero che un po 'di questo aiuti!
Altri suggerimenti
Perché myResult
invece di request
?
success: function(request) {
alert(myResult.length);
}
Il parametro dati è sbagliato.Ecco un esempio che funziona:
dati:{indice:ddl.selectedIndex },
Questo costruisce un oggetto con la proprietà chiamata indice con valore ddl.selectedIndex.
È necessario rimuovere le virgolette dalla riga del parametro dati
Buona fortuna a