Re: Problema con Ajax e Internet Explorer (sólo en el servidor) [Solucionado]

Iniciado por KateLibby, 24 Mayo 2011, 13:19 PM

0 Miembros y 1 Visitante están viendo este tema.

KateLibby

Hola. Tengo un problema un poco raro.

Se trata de un input en el cual mediante Ajax realizo una consulta a la base de datos buscando, a medida que escribo, los usuarios registrados que concuerdan con la cadena que estoy escribiendo. Lo he probado en local y funciona sin problema tanto en Firefox como en IE, pero al subirlo al servidor, IE no me muestra ningún resultado (con Firefox todo funciona correctamente).

He pensado que podría tratarse de algún parámetro en el php.ini que sea diferente en el servidor que en local, ya que ha dejado de funcionar al subirlo al servidor, pero entonces no me cuadra que en Firefox sí me funcione.

¿Alguna idea? Gracias.

Nakp

abre la consola javascript y mira que pasa, el problema esta ahi... Con lo poco que dices es dificil saber
Ojo por ojo, y el mundo acabará ciego.

[u]nsigned

Seria bueno que pongas el codigo fuente de los scripts en cuestion (html, js y php). Esto no es problema del servidor, sino del cliente...

Calculo que no usaras algun framework como jQuery. Te recuerdo que si lo haces directamente con DHTML, internet explorer no soporta el objeto XMLhttpRequest por javascript, sino que lo implementa mediante ActiveX.

Aunque si en local te funciona es raro bien, y en el server externo solo con firefox es muy raro...

http://goo.gl/LB8Ga

Saludos

No hay atajo ante la duda, el misterio se hace aquí...
Se hace carne en cada uno, el misterio es existir!

KateLibby

Hola, gracias por vuestras respuestas. Os pongo el código a ver si podemos solucionar algo.


<input type="text" name="username" id="username" onkeyup="getusers(); muestra();" autocomplete="off" />
<input id="validaruser" type="submit" value="Comprobar Usuario">
<div id="capa"></div>



            function getusers()
            {
                if($("#username").val().length > 1)
                {
                    $.ajax({
                        type: "POST",
                        url: "getusers.php",
                        data: "word="+$("#username").val(),
                        success: function(data)
                        {
$("#capa").html('<div></div>');
$("#capa").html($("#capa").html()+data);
                        }
                    });
                }
            }


Archivo getusers.php

<?php
require_once(
'db.php');

$word $_POST['word'];

$result mysql_query("SELECT * FROM usuarios WHERE username LIKE '$word%'");
$users = array();

while($row mysql_fetch_array($result))
$users[] = $row;

?>


<?php foreach($users as $user): ?>

    <div><?=str_replace($word, '<strong>'.$word.'</strong>', $user['username'])?></div>

<?php endforeach; ?>


[u]nsigned

Proba esto: en tu archivo javascript, donde indicas los parametros data en la llamada a la funcion $.ajax deben ir encerrados entre corchetes:

Código (javascript) [Seleccionar]
data: {"word="+$("#username").val()},

Proba si con eso te funciona.

Saludos

No hay atajo ante la duda, el misterio se hace aquí...
Se hace carne en cada uno, el misterio es existir!

KateLibby

No hubo suerte. Con este cambio también deja de funcionar en Firefox :-\ pero gracias por el aporte.

Littl3

Una prueba que puedes hacer es intentar cargar un archivo que no sea php, un html, si te funciona es posible que el problema sea con la cache de IE, prueba de poner esto al principio del archivo php que llamas desde ajax.

header("Cache-Control: no-store, no-cache, must-revalidate");

Tube un problema parecido al utilizar $.get de jquery, un saludo.

KateLibby

Cita de: Littl3 en 24 Mayo 2011, 20:34 PM
Una prueba que puedes hacer es intentar cargar un archivo que no sea php, un html, si te funciona es posible que el problema sea con la cache de IE, prueba de poner esto al principio del archivo php que llamas desde ajax.

header("Cache-Control: no-store, no-cache, must-revalidate");

Tube un problema parecido al utilizar $.get de jquery, un saludo.

Gracias por la respuesta Littl3. Aún así no he podido solucionarlo. He probado lo de header y también lo de hacerlo en un html, y sigue sin funcionar.

KateLibby

#8
Ya lo he encontrado.

He subido lo archivos a otro servidor y ha funcionado incluso con Internet Explorer, por lo que he sustituido el php.ini del servidor con el que no funcionaba por el php.ini del que sí, y ya ha ido todo bien. El problema es que no quiero sustituir el fichero entero porque anteriormente ya me encontré con que al cambiar ciertos parámetros del php.ini, hay otras cosas que dejan de funcionar.

Mi pregunta ahora es si sabéis qué parámetros del php.ini pueden afectar a AJAX/Internet Explorer, para poder modificar sólo esos parámetros.

Gracias.

KateLibby

Funcionó! Pongo la solución por si a alguien le sirve.

En el php.ini borrar o comentar la línea

default_charset = "utf8"

Gracias por todas vuestras respuestas.