Foro de elhacker.net

Programación => PHP => Mensaje iniciado por: KateLibby en 24 Mayo 2011, 13:19 pm



Título: Re: Problema con Ajax e Internet Explorer (sólo en el servidor) [Solucionado]
Publicado por: KateLibby en 24 Mayo 2011, 13:19 pm
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.


Título: Re: Problema con Ajax e Internet Explorer (sólo en el servidor)
Publicado por: Nakp en 24 Mayo 2011, 14:06 pm
abre la consola javascript y mira que pasa, el problema esta ahi... Con lo poco que dices es dificil saber


Título: Re: Problema con Ajax e Internet Explorer (sólo en el servidor)
Publicado por: [u]nsigned en 24 Mayo 2011, 14:24 pm
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


Título: Re: Problema con Ajax e Internet Explorer (sólo en el servidor)
Publicado por: KateLibby en 24 Mayo 2011, 15:47 pm
Hola, gracias por vuestras respuestas. Os pongo el código a ver si podemos solucionar algo.

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

Código:
            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
Código:
<?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; ?>


Título: Re: Problema con Ajax e Internet Explorer (sólo en el servidor)
Publicado por: [u]nsigned en 24 Mayo 2011, 18:34 pm
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
  1. data: {"word="+$("#username").val()},

Proba si con eso te funciona.

Saludos


Título: Re: Problema con Ajax e Internet Explorer (sólo en el servidor)
Publicado por: KateLibby en 24 Mayo 2011, 18:43 pm
No hubo suerte. Con este cambio también deja de funcionar en Firefox :-\ pero gracias por el aporte.


Título: Re: Problema con Ajax e Internet Explorer (sólo en el servidor)
Publicado por: 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.

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

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


Título: Re: Problema con Ajax e Internet Explorer (sólo en el servidor)
Publicado por: KateLibby en 25 Mayo 2011, 11:15 am
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.

Código:
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.


Título: Re: Problema con Ajax e Internet Explorer (sólo en el servidor)
Publicado por: KateLibby en 25 Mayo 2011, 12:09 pm
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.


Título: Re: Problema con Ajax e Internet Explorer (sólo en el servidor) [Solucionado]
Publicado por: KateLibby en 25 Mayo 2011, 17:28 pm
Funcionó! Pongo la solución por si a alguien le sirve.

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

Código:
default_charset = "utf8"

Gracias por todas vuestras respuestas.