Hola.
Tengo un problema con unas peticiones AJAX. Es muy raro y por eso requiero de vuestra iluminación.
He hecho una aplicación web con un framework Javascript. Mediante peticiones AJAX a distintas funciones PHP, carga los modelos de datos de la aplicación. Mientras trabajé en local, no tuve problemas, pero ahora lo he subido a un servidor (hosting www.strato.es) y me encuentro con que las peticiones que devuelven MUY poca información sí funcionan, pero las peticiones que devuelven arrays de de objetos no funcionan para más de un objeto. El contenido de la base de datos es exactamente el mismo que el que había en la base de datos local. Básicamente porque he hecho un export/import de la base de datos local a la nueva.
Este es el resultado de una petición que devuelve un array de objetos:
Pero hay otra petición que también recupera un array, en este caso con 4 objetos de 8 atributos y me devuelve el siguiente error:
Entiendo que el error es de conversión JSON. Pero si esos mismos datos me funcionan en local, ¿por qué no funcionan el un servidor en internet?
Me he planteado que tal vez sea un problema en el tamaño de los datos, pero buscando información he leído que el único parámetro que puede afectar es el "post_max_size" de Apache. El caso es que el servidor donde lo tengo alojado permite hasta 48MB de datos en las peticiones, y aquí hablamos de texto plano en cantidades minúsculas.
El código que uso para las funciones AJAX es el siguiente:
peticionServidor: function(sUrl, oInput, fnCallbackOK, fnCallbackError) {
$.ajax({
type: "POST",
url: "php/" + sUrl + ".php",
data: oInput,
dataType: "html",
success: function(oData, sStatus, oRequest){
if(fnCallbackOK) {
fnCallbackOK(oData, sStatus, oRequest);
}
},
error: function(oRequest, sStatus, sError){
if(fnCallbackError !== undefined && fnCallbackError !== null) {
fnCallbackError(oRequest, sStatus, sError);
} else {
SothisM.Mensajes.error("Error en la petición: "+sError);
console.log("Error en la petición: %O", oRequest);
}
dlgCarga.close();
}
});
},
Ahí simplemente hago una llamada construyendo la petición y pasándole un objeto con los datos que quiero enviar.
He probado a hacerlo también con una petición GET, pero me pasa lo mismo.
¿Se os ocurre por donde pueden ir los tiros? No sé si puede ser algo de configuración del servidor, pero los de Strato se han desentendido totalmente y estoy bastante frustrado ya con esto.