php - Problema con el encabezado de origen de origen del control de acceso AMP
cors amp-html (2)
Aunque OP usa PHP, estoy publicando aquí para mis peeps javascript.
Para el servidor nodo express , puede usar amp-toolbox-cors , que proporciona middleware.
const express = require(''express'');
const ampCors = require(''amp-toolbox-cors'');
const app = express();
// That''s it!
app.use(ampCors());
...
De manera predeterminada, el middleware AMP CORS solo permitirá solicitudes de cachés AMP enumerados en https://cdn.ampproject.org/caches.json (con la adición de bing-amp.com).
Todos los demás orígenes recibirán una respuesta 403.
Entonces, para las pruebas localhost o de desarrollo, probablemente también deseen agregar lo siguiente:
app.use(ampCors({
verifyOrigin: false
}));
Para aquellos que quieren profundizar, aquí hay un enlace a documentos oficiales sobre cómo cumplir con AMP CORS .
¿Cómo puedo resolver el error a continuación;
Error al cargar el recurso: el servidor respondió con un estado de 500 (Error interno del servidor) cdn.ampproject.org/v0.js:68 La respuesta debe contener el encabezado AMP-Access-Control-Allow-Source-Origin Yd @ cdn.ampproject .org / v0.js: 68 cdn.ampproject.org/v0.js:68 Error al enviar el formulario: Error: la respuesta debe contener el encabezado AMP-Access-Control-Allow-Source-Origin informado
Seguí todas las instrucciones en la página AMP GitHub en CORS .
A continuación se muestra una captura de pantalla de mi código PHP en el lado del servidor y un error en la consola de mi navegador;
Por favor intente con el siguiente código
if(!empty($_POST)){
$domain_url = (isset($_SERVER[''HTTPS'']) ? "https" : "http") . "://$_SERVER[HTTP_HOST]";
header("Content-type: application/json");
header("Access-Control-Allow-Credentials: true");
header("Access-Control-Allow-Origin: ". str_replace(''.'', ''-'',''https://example.com'') .".cdn.ampproject.org");
header("AMP-Access-Control-Allow-Source-Origin: " . $domain_url);
header("Access-Control-Expose-Headers: AMP-Access-Control-Allow-Source-Origin");
header("AMP-Redirect-To: https://example.com/thankyou.amp.html");
header("Access-Control-Expose-Headers: AMP-Redirect-To, AMP-Access-Control-Allow-Source-Origin");
echo json_encode(array(''successmsg''=>''data post''));
exit;
}
Asegúrese de que la URL del dominio debe ser https
Reemplace https://example.com/ a su url deseada