Foros del Web » Programando para Internet » PHP »

Envio con across domain CORS

Estas en el tema de Envio con across domain CORS en el foro de PHP en Foros del Web. Cordial Saludo. He estado trabajando en el logueo de un usuario en un hosting donde hace la peticion a un servidor a travez de $.ajax, ...
  #1 (permalink)  
Antiguo 16/05/2015, 13:39
 
Fecha de Ingreso: febrero-2013
Ubicación: Cali Colombia
Mensajes: 118
Antigüedad: 11 años, 2 meses
Puntos: 0
Envio con across domain CORS

Cordial Saludo.

He estado trabajando en el logueo de un usuario en un hosting donde hace la peticion a un servidor a travez de $.ajax, peticion across domain.

No se si este tema es directamente para javascript o de php, el hecho es que es union de dos tecnologias el cual he tenido un pequeño conflicto.

He estado realizando una prueba en un hosting con un input sencillo y un boton que al digitar juan esto lo envia al servidor y este valida si es correcto y lo devuelve al cliente diciendole Bienvenido.

Por favor, no me digan que es JSON en ves de JSONP, segun la pagina de jquery dice que para across domain es JSONP.... solo por aclarar ya que hay foros que dicen que no es asi sin haber revisado primero.

El hosting de esta web de prueba es
http://webpruebamail.esy.es/envio_pa...ar_across.html
Código Javascript:
Ver original
  1. <script>
  2.     $(document).ready(function(){
  3.        $("#go").on('click',function(){
  4.          var id = $("#log_id").val();
  5.          alert(id);
  6.         // var pass = ("#log_pass").val();
  7.          if(id.length > 0){
  8.            $.ajax({
  9.              dataType: 'JSONP',
  10.              crossDomain: true,
  11.              url: "envioporpost.esy.es/index.php",
  12.              type:"POST",
  13.              data:{"user":+id},
  14.              success:function(data){
  15.                 var dato = $.parseJSON(data);  
  16.                 console.log("respuesta de : "+dato);
  17.                 $("#label").html(dato);
  18.              },
  19.              xhrFields: {
  20.                 withCredentials: true
  21.              },
  22.              statusCode: {
  23.               404: function() {
  24.                 console.log( "page not found" );
  25.               },
  26.               200: function() {
  27.                 console.log( "encontrado" );
  28.               }
  29.              },
  30.              error:function(jqXHR, textStatus, errorThrown){
  31.                 console.log(jqXHR);
  32.                 console.log(textStatus);
  33.                 console.log(errorThrown);
  34.              }      
  35.  
  36.            });
  37.          }
  38.         });  
  39.     });
  40. </script>

Y el servidor retoma la peticion.

Código PHP:
Ver original
  1. <?php
  2. header('Content-Type: text/html; charset=UTF-8');  
  3. header('Access-Control-Allow-Origin: http://webpruebamail.esy.es/envio_para_probar_across.html');
  4. header('Access-Control-Allow-Methods:POST');
  5.     if(isset($_POST["user"]) and $_POST["user"] =="juan"){
  6.  
  7.         echo "Bienvenido";
  8.     }
  9. ?>
  #2 (permalink)  
Antiguo 19/05/2015, 08:11
Avatar de enlinea777  
Fecha de Ingreso: mayo-2008
Ubicación: frente al pc
Mensajes: 1.830
Antigüedad: 15 años, 11 meses
Puntos: 127
Respuesta: Envio con across domain CORS

estoy viendo tu codigo en lugar de POST tienes un GET

Código HTML:
Ver original
  1. <!DOCTYPE html>
  2.     <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/css/bootstrap.min.css">
  3.     <script src="https://code.jquery.com/jquery-2.1.3.js"></script>
  4.     <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/js/bootstrap.min.js"></script>    
  5.     <title></title>
  6. </head>
  7.     <input type="text" id="log_id">
  8.     <input type="text" id="log_pass">
  9.   <button id="go">Enviar</button>
  10.  <script> alert(document.cookie);</script>
  11. </body>
  12. </html>
  13.  
  14.     $(document).ready(function(){
  15.        $("#go").on('click',function(){        
  16.          var id = $("#log_id").val();
  17.          var pass = $("#log_pass").val();
  18.          if(id.length > 0 && pass.length > 0){
  19.           $.ajax({
  20.             type:"GET",
  21.             dataType: 'jsonp',
  22.             crossDomain: true,
  23.             url: "http://envioporpost.esy.es/verificar.php?jsoncallback=?",
  24.             jsonpCallback: 'jsonCallback',
  25.             data:"user="+id+"&pass="+pass,
  26.             success:function(data){
  27.              // data = JSON.parse(data);
  28.                console.log(data.users);
  29.                console.log(data.passw);
  30.                var myDate = new Date();
  31.                myDate.setMonth(myDate.getMonth() + 12);
  32.                document.cookie = "user_da=" + data.users + ";expires=" + myDate
  33.                   +";domain=.http://envioporpost.esy.es;path=/";
  34.                document.cookie = "pass=" + data.passw + ";expires=" + myDate
  35.                   +";domain=.http://envioporpost.esy.es;path=/";
  36.              // var nomb = localStorage.getItem("users_d");
  37.              // var passd = localStorage.getItem("pass_d");
  38.               window.location.href = "http://envioporpost.esy.es";
  39.                
  40.              },
  41.              xhrFields: {
  42.               withCredentials: true
  43.              },
  44.              statusCode: {
  45.               404: function() {
  46.                 console.log( "page not found" );
  47.               },
  48.               200: function() {
  49.                 console.log( "encontrado" );
  50.               }
  51.              },
  52.              error:function(jqXHR, status, error){
  53.                 console.log(status + '; ' + error);
  54.              }      
  55.            });
  56.          }
  57.         });
  58.     });
  59.    

Etiquetas: ajax, javascript, jquery
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 17:05.