Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

166
Views
¿Por qué este simple archivo PHP no tiene CORS funcionando?

Tengo un archivo PHP muy simple en un servidor Apache que debe responder a una solicitud de Ajax. Estoy tratando de permitir CORS pero no funciona (la consola de Firefox muestra: Motivo: Falta el encabezado CORS 'Access-Control-Allow-Origin' ).

Intento diferentes soluciones de esta pregunta pero no funciona. No estoy usando ningún marco, solo un archivo index.php en un servidor Apache.

Este código es el más simple que encontré pero no funciona ( index.php ):

 <?php header("Access-Control-Allow-Origin: *"); header("Access-Control-Allow-Credentials: true"); header("Access-Control-Max-Age: 1000"); header("Access-Control-Allow-Headers: X-Requested-With, Content-Type, Origin, Cache-Control, Pragma, Authorization, Accept, Accept-Encoding"); header("Access-Control-Allow-Methods: PUT, POST, GET, OPTIONS, DELETE"); echo('CORS activated!!!'); ?>

Mi archivo HTML:

 $.ajax({ type: 'GET', url: 'http://localhost/index.php', }) .done(function(data) { console.log('Do I have CORS?: ' + data); }) .fail(function() { alert("Error"); });
about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

Posibilidad 1: por MDN , no puede usar el comodín ( * ) para Access-Control-Allow-Origin si también usa Access-Control-Allow-Credentials .

Para solicitudes sin credenciales, se puede especificar el valor literal "*", como comodín; el valor le dice a los navegadores que permitan solicitar código de cualquier origen para acceder al recurso. Si intenta utilizar el comodín con las credenciales, se producirá un error.

 <?php header("Access-Control-Allow-Origin: *"); //Either change this to your domain(s) header("Access-Control-Allow-Credentials: true"); //Or get rid of this ?>

(La razón es: esta combinación permitiría que cualquier persona en Internet se haga pasar por uno de sus usuarios cargando su dominio en un iframe y luego manipulándolo con JS, de manera completamente invisible).

Probablemente sea eso, pero lo siguiente podría ayudar con las pruebas de todos modos:

Posibilidad 2: su index.php se almacena en caché, por lo que después de realizar los cambios, su navegador aún ve la versión anterior. La característica de 'deshabilitar caché' en la consola de desarrollo puede no ser confiable para algunas cosas como iframes y recursos de URL CSS. Intente visitar index.php desde una sesión de navegación privada y verifique qué encabezados se envían en la consola de desarrollo.

Encabezados HTTP de la consola de desarrollo

about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!