comment
IRC Chat
play_arrow
Este sitio utiliza cookies propias y de terceros. Si continúa navegando consideramos que acepta el uso de cookies. OK Más Información.

[SOLUCIONADO]Error en Ajax:"falta la cabecera CORS 'Access-Control-Allow-Origin"

  • 3 Respuestas
  • 17129 Vistas

0 Usuarios y 8 Visitantes están viendo este tema.

Desconectado $francisco

  • *
  • Underc0der
  • Mensajes: 191
  • Actividad:
    0%
  • Reputación 0
    • Ver Perfil
    • Email
  • Skype: hackloper
« en: Febrero 17, 2016, 05:50:34 pm »
Muy buenas, tengo este error al realizar una peticion ajax pero no logro poder hacerla y en google siempre me dice lo mismo y no funciona.

Código: PHP
  1. header("Access-Control-Allow-Origin: *");

mi archivo ajax:

Código: Javascript
  1. $(document).ready(function(){
  2.         $.ajax({
  3.                 url:'http://miweb.eshost.com.ar/index.php',
  4.                 method:'POST',
  5.                 dataType:'json',
  6.         })
  7.         .done(function(data){
  8.                 var text = $(data).find("cite").text();
  9.                 $("#content").text(text);
  10.  
  11.         })
  12.         .fail(function(){alert("fail");})
  13. });

mi archivo php.

Código: HTML5
  1. <!DOCTYPE html>
  2.         <meta charset="utf-8">
  3.         <title></title>
  4.  
  5. </head>
  6. <?php
  7. header("Access-Control-Allow-Origin: *");
  8. echo "hola";
  9. ?>
  10. </body>
  11. </html>

y el error completo

Código: [Seleccionar]
Solicitud desde otro origen bloqueada: la política de mismo origen impide leer el recurso remoto en http://services.eshost.com.ar/index.php (razón: falta la cabecera CORS 'Access-Control-Allow-Origin').
Lo unico que se me ocurre que mi hosting no me deje hacer esta tipo de peticiones ¿podria ser?
« Última modificación: Febrero 21, 2016, 06:52:44 am por Stiuvert »

Desconectado blackdrake

  • *
  • Co Admin
  • Mensajes: 1914
  • Actividad:
    0%
  • Reputación 15
    • Ver Perfil
« Respuesta #1 en: Febrero 17, 2016, 08:29:52 pm »
He estado mirando porque ajax no es mi fuerte y al parecer el código está bien, es posible que el servidor esté bloqueando ese tipo de conexiones, pero me extraña ya que te devuelve un mensaje (con sentido), y no ninguno del tipo "Petición bloqueada por motivos de seguridad etc...".

Puedes probarlo por ejemplo en local o en otro hosting para salir de dudas?

Saludos.



Desconectado arthusu

  • *
  • Underc0der
  • Mensajes: 552
  • Actividad:
    3.33%
  • Reputación 2
  • Yo solo se que no se nada - Socrátes
    • Ver Perfil
    • Arthusu BLOG
  • Skype: arthusuxD
« Respuesta #2 en: Febrero 18, 2016, 02:17:00 am »
Y si intententas poner un .htaccess en tu hosting?

Código: Text
  1. # ----------------------------------------------------------------------
  2. # Allow loading of external fonts
  3. # ----------------------------------------------------------------------
  4. <FilesMatch "\.(ttf|otf|eot|woff)$">
  5.     <IfModule mod_headers.c>
  6.         SetEnvIf Origin "http(s)?://(www\.)?(google.com|staging.google.com|development.google.com|otherdomain.net|dev02.otherdomain.net)$" AccessControlAllowOrigin=$0
  7.         Header add Access-Control-Allow-Origin %{AccessControlAllowOrigin}e env=AccessControlAllowOrigin
  8.     </IfModule>
  9. </FilesMatch>

En este caso el ejemplo solo permite fuentes... obviamente tu cambias eso por las extensiones de tus archivos y la URL en lugar de google las URL's de Origen que quieres permitir...

Usando PHP:

Código: PHP
  1. // Allow from any origin
  2. if (isset($_SERVER['HTTP_ORIGIN'])) {
  3.     header("Access-Control-Allow-Origin: {$_SERVER['HTTP_ORIGIN']}");
  4.     header('Access-Control-Allow-Credentials: true');
  5.     header('Access-Control-Max-Age: 86400');    // cache for 1 day
  6. }
  7. // Access-Control headers are received during OPTIONS requests
  8. if ($_SERVER['REQUEST_METHOD'] == 'OPTIONS') {
  9.  
  10.     if (isset($_SERVER['HTTP_ACCESS_CONTROL_REQUEST_METHOD']))
  11.         header("Access-Control-Allow-Methods: GET, POST, PUT, DELETE, OPTIONS");        
  12.  
  13.     if (isset($_SERVER['HTTP_ACCESS_CONTROL_REQUEST_HEADERS']))
  14.         header("Access-Control-Allow-Headers: {$_SERVER['HTTP_ACCESS_CONTROL_REQUEST_HEADERS']}");
  15.  
  16. }


Saludos, espero que te sirva c:
« Última modificación: Febrero 18, 2016, 02:20:11 am por arthusu »
Pentest - Hacking & Security Services

Contact me: arthusu@gmail.com

Desconectado $francisco

  • *
  • Underc0der
  • Mensajes: 191
  • Actividad:
    0%
  • Reputación 0
    • Ver Perfil
    • Email
  • Skype: hackloper
« Respuesta #3 en: Febrero 18, 2016, 11:23:16 am »
Probe de muchas maneras y podria ser que mi hosting lo tenga bloqueado de todas maneras encontré la manera de hacerlo con "jsonp"

https://learn.jquery.com/ajax/working-with-jsonp/

 

¿Te gustó el post? COMPARTILO!



[SOLUCIONADO] ¿Kali Linux o Kali Linux Ligth ?

Iniciado por worq

Respuestas: 2
Vistas: 8459
Último mensaje Noviembre 21, 2017, 12:28:54 pm
por Codig0Bit
[SOLUCIONADO] Multiuploader de imagenes con mysql, hosting de imagenes con mysql

Iniciado por graphixx

Respuestas: 4
Vistas: 2306
Último mensaje Marzo 26, 2013, 05:42:58 pm
por Xt3mP
[SOLUCIONADO] ¿Como publicar un software como software libre?

Iniciado por FuriosoJack

Respuestas: 2
Vistas: 1721
Último mensaje Mayo 23, 2017, 07:24:22 am
por HATI
[SOLUCIONADO] Linux Mint, errores, errores y mas errores...

Iniciado por n1sendev

Respuestas: 12
Vistas: 3225
Último mensaje Noviembre 22, 2017, 06:50:55 am
por RuidosoBSD
[SOLUCIONADO] Que significa .phps - Que es .phps

Iniciado por graphixx

Respuestas: 6
Vistas: 2663
Último mensaje Abril 23, 2015, 09:28:57 am
por ANTRAX