Ver Mensaje Individual
  #3 (permalink)  
Antiguo 12/08/2011, 11:42
yoelkj
 
Fecha de Ingreso: marzo-2009
Ubicación: Lima
Mensajes: 73
Antigüedad: 15 años, 1 mes
Puntos: 1
Información Respuesta: app enbebida en iframe no guarda cookie en safari

Gracias por responder

te invito a que pruebes la plicación

live . vidium . es

email: [email protected]
pass:123

En el lado superior derecho veras un select box con la lista de ips
seleccionas el que empieza con 46 que es el que existe

lo correcto es que te muestre el home y no el login

con los navegadores firefox, opera, crome se ven a la perfección
los problemas fueron con iexplorer y safari. por politicas de seguridad que tienen esos navegadores no aceptan la cookie de session del sitio en el iframe.

pero en iexplorer lo solucione con una cabecera header('P3P: CP="CAO PSA OUR"');

EN SAFARI NO LE ENCUENTRO MANERA.


- son aplicaciones de distintos servidores
- tengo acceso a las dos aplicaciones

la llamada al servidor dentro del iframe lo hice con jsonp

Código Javascript:
Ver original
  1. function openSession(localhostIp, emaill, securityDataa){
  2.                     //alert(localhostIp+" "+email+" "+securityData);
  3.                     $.jsonp({
  4.                             url: "http://"+localhostIp+":9000/pms/api/loginRemote.php",
  5.                             cache: true,
  6.                             pageCache :true,
  7.                             callbackParameter: "callback",
  8.                             //data: "email="+email+"&securityData="+securityData,
  9.                             data: {"email": emaill, "securityData": securityDataa},
  10.                             beforeSend: function (xOptions) {
  11.                                    
  12.                                         viewLoaded();
  13.                             },
  14.                             success: function (json, textStatus) {
  15.                                 $("#loading img").hide();
  16.                                 if (json.aut == "ok"){
  17.                                     sessionId = json.sessionId;
  18.                                         $('div#divDestino').html(' ').append('<iframe id="framevidium" name="targetdiv" width="100%" height="600" src="http://'+localhostIp+':9000/pms/webadmin/home.php"/>');
  19.                                         successDivs();
  20.                                 }else{
  21.                                     $('div#divDestino').html(' ');
  22.                                     errorDivs();
  23.                                     alert(json.message);
  24.                                 }
  25.                             },
  26.                             error: function (xOptions, textStatus) {
  27.                                 $('div#divDestino').html(' ');
  28.                                 errorDivs();
  29.                                 alert("Error: la pagina no existe");
  30.                             }
  31.                     });
  32.                     prevLocalhostIp = localhostIp;
  33.                 }
  34.                
  35.                 function viewLoaded(){
  36.                     $("#divhome").hide();
  37.                     $("#divDestino").hide();
  38.                     $("#loading img").show();
  39.                 }

Gracias por el apoyo