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

È stato utile?

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?

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top