Ver Mensaje Individual
  #1 (permalink)  
Antiguo 03/07/2011, 10:41
lemmy2011
 
Fecha de Ingreso: febrero-2011
Mensajes: 156
Antigüedad: 13 años, 2 meses
Puntos: 4
Problemas con AJAX en Mozilla ( y Safari )

Hola a todos! Hago uan llamada a un JS. Este JS, ejecuta un procedimiento vía AJAX. Este procedimiento no es más que una llamada a un PHP. Este PHP modifica el valor de uan variable de sesión. Es decir, mediante una llamada JS, actualizo el valor de uan variable de sesión. En IE, Operay Google Chrome funciona bien. En Mozilla y Safari, no. Las tres partes implicadas son:

--------------------------------------------------------------------------------------------------
-------------------------- CREA EL OBJETO AJAX ----------------------------------------
--------------------------------------------------------------------------------------------------

function fun_nuevo_ajax()
{
/* Crea el objeto AJAX. Esta funcion es generica para cualquier utilidad de este tipo, por
lo que se puede copiar tal como esta aqui */
var xmlhttp=false;
try
{
// Creacion del objeto AJAX para navegadores no IE
xmlhttp=new ActiveXObject("Msxml2.XMLHTTP");
}
catch(e)
{
try
{
// Creacion del objeto AJAX para IE
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
catch(E) { xmlhttp=false; }
}
if (!xmlhttp && typeof XMLHttpRequest!='undefined') { xmlhttp=new XMLHttpRequest(); }

return xmlhttp;
}

--------------------------------------------------------------------------------------------------
------------------------ FUNCIÓN JS QUE CREA EL OBJETO AJAX ----------------------
--------------------------------------------------------------------------------------------------

function fun_accion_semaforo()
{
var v_ajax = fun_nuevo_ajax();

// uso del medoto GET.
v_ajax.open("GET", "./php_accion_boton.php");

//como hacemos uso del metodo GET colocamos null
v_ajax.send(null);
}
<?
session_start();
?>

--------------------------------------------------------------------------------------------------
-- PROCEDIMIENTO QUE ACTUALIZA EL VALORO DE LA VARIABLE DE SESIÓN --
--------------------------------------------------------------------------------------------------


<?php
$_SESSION["p_accion_boton"] = 'N';
if ( $_SESSION["p_usuario"] ) { $_SESSION["p_accion_boton"] = 'S'; }
?>

Lo curioso es que, en la función JS ("fun_accion_semaforo()") si substituyo la linea:
- v_ajax.open("GET", "./php_accion_boton.php");
por:
- v_ajax.open("POST", "./php_accion_boton.php");

Sí que funciona... alguien podría ayudarme.

Muchas gracias.