Quiero realizar una solicitud de dominio cruzado de localhost a localhost: 81, pero constantemente falta CORS-Header'Access-Control-Allow-Origin'. Pero configuré el encabezado en postHere.php. También probé header('Access-Control-Allow-Origin: *'); y tampoco funciona?
postHere.php
<?php switch ($_SERVER['HTTP_ORIGIN']) { case 'http://localhost': case 'https://localhost': header('Access-Control-Allow-Origin: ' . $_SERVER['HTTP_ORIGIN']); header('Access-Control-Allow-Methods: GET, PUT, POST, DELETE, OPTIONS'); header('Access-Control-Max-Age: 1000'); header('Access-Control-Allow-Headers: Content-Type, Authorization, X-Requested-With'); break; }Archivo HTML en localhost desde el que quiero enviar a localhost:81
<html> <head> <script src="//code.jquery.com/jquery-3.6.0.min.js"></script> </head> <body> <script> $.ajax({ type: 'POST', url: 'http://localhost:81/postHere.php', crossDomain: true, data: '{"some":"json"}', dataType: 'json', success: function(responseData, textStatus, jqXHR) { var value = responseData.someKey; }, error: function (responseData, textStatus, errorThrown) { alert('POST failed.'); } }); </script> </body> </html>Debe habilitar su servidor en el segundo origen (en su caso, localhost:81 , aunque probablemente debería usar 8081 en su lugar) para permitir solicitudes de origen cruzado. Consulte las guías de Mozilla sobre eso.
Enlaces: https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS https://developer.mozilla.org/en-US/docs/Glossary/CORS