La respuesta de uploadify + jQuery 1.4 está vacía después de uploadComplete

StackOverflow https://stackoverflow.com/questions/2079066

  •  21-09-2019
  •  | 
  •  

Pregunta

Estoy usando uploadify con jquery 1.4 para subir imágenes.En el script php que carga los archivos imprimimos esto:

$json_response['status'] = "true";
$json_response['file'] = $_FILES;
echo Zend_Json_Encoder::encode($json_response);

En javascript hacemos (en resumen):

$('#images_upload_file').uploadify({

    onComplete: function(event, queueID, fileObj, response, data) {

            console.log("upload complete");
            console.log(response);

la "respuesta" siempre está vacía, pase lo que pase.El evento, el ID de cola, el objeto de archivo y los datos se completan correctamente.¿Alguien sabe cómo arreglar esto?

Déjeme saber si usted necesita más información.PD:nuestro código carga imágenes muy bien, solo que la respuesta está vacía todo el tiempo desde que actualizamos a jquery 1.4

¿Fue útil?

Solución

yo siempre uso json2.js para procesar cualquier dato json.Esta biblioteca tiene un mecanismo de seguridad en caso de que los datos no estén en el formato json adecuado.Puedes obtenerlo de http://json.org, asegúrese de descargar el archivo js y no usarlo directamente desde su sitio.

Mi código siempre se ve así:

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!");
  }
}

La razón por la que uso json2.js se debe a que mi script php tiene verificación de sesión y lo redireccionará si no se acepta la sesión.Se hizo antes de ingresar a la página, usando el módulo de filtro, por lo que no puedo verificar si se trata de una solicitud AJAX o de un acceso normal a la página.Si la sesión requerida no cumple con la regla de la página, se redireccionará inmediatamente, por lo que devolverá una página web completa.

Esto hará que la respuesta no esté en formato json válido.Usando json2.js puedo manejarlo en catch bloquear, luego realizar otra acción, recargar la página actual, por ejemplo.Esto es algo que siempre uso y que siempre funciona para mí.

Para su información, json2.js No es necesario y no está relacionado con jQuery en absoluto.

Otros consejos

es error_reporting activada en el script PHP?

Podría ser un error fatal (por ejemplo, porque no puede cargar la clase Zend_Json_Encoder) que no es la salida debido a la configuración error_reporting?

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top