uploadify + jQuery 1,4 risposta è vuota dopo uploadComplete
Domanda
Sto usando uploadify con jQuery 1.4 per caricare le immagini. Nello script php che carica i file che abbiamo stampare questa:
$json_response['status'] = "true";
$json_response['file'] = $_FILES;
echo Zend_Json_Encoder::encode($json_response);
In javascript che facciamo (in breve):
$('#images_upload_file').uploadify({
onComplete: function(event, queueID, fileObj, response, data) {
console.log("upload complete");
console.log(response);
la "risposta" è sempre vuoto, non importa quale. Evento, queueID, fileobj ei dati sono tutti riempito correttamente. Qualcuno sa come risolvere questo problema?
Fatemi sapere se avete bisogno di ulteriori informazioni. PS: i nostri arrivi immagini Codice bene, proprio la risposta è vuota per tutto il tempo da quando abbiamo aggiornato a jQuery 1.4
Soluzione
Io uso sempre json2.js
per elaborare tutti i dati JSON. Questa libreria ha meccanismo di sicurezza nel caso in cui i dati non sono in formato corretto JSON. È possibile ottenere da http://json.org , assicurarsi di scaricare il file js, non lo si utilizza direttamente da il loro sito.
Il mio codice è sempre così:
onComplete : function (event, queueID, fileObj, response, data) {
//process response
try {
var r = JSON.parse(response);
//process the JSON data, ex
console.log(r.status);
}
catch(e) {
//not json or bad format, do something about it
alert("cannot parse data as json!");
}
}
Il motivo che uso json2.js
è perché il mio script php ha il controllo della sessione, e reindirizzerà se la sessione non è accettata. E 'fatto prima di entrare nella pagina, utilizzando il modulo di filtro, quindi non posso verificare se una richiesta AJAX, o normale accesso pagina. Se la sessione richiesta non è soddisfatto regola della pagina, sarà reindirizzare immediatamente, in modo che restituirà una pagina web completa.
Questo renderà la risposta non è in formato JSON valido. Utilizzando json2.js
posso gestire nel blocco catch
, quindi eseguire un'altra azione, ricaricare la pagina corrente per esempio. Questo è solo qualcosa che io uso sempre, e sempre a lavorare per me.
Cordiali saluti, json2.js
non richiede e non in relazione con jQuery a tutti.
Altri suggerimenti
è error_reporting acceso nello script PHP?
Potrebbe essere un errore fatale (ad esempio perché non può caricare la classe Zend_Json_Encoder) che non viene emesso causa dell'impostazione error_reporting
?