Impossibile caricare admin-ajax.php. No access-control allow origin*
Non riesco a caricare admin-ajax.php
e continuo a ricevere questo messaggio di errore:
XMLHttpRequest cannot load ..../wp-admin/admin-ajax.php.,. No 'Access-Control-Allow-Origin' header is present on...
Su WAMP locale ha funzionato aggiungendo questo:
header("Access-Control-Allow-Origin: *");
(Anche se questo sembra molto poco pratico perché alla prossima volta che WordPress si aggiorna immagino che scomparirebbe.)
Quando carico questo sul mio server di produzione ottengo ancora lo stesso messaggio:
XMLHttpRequest cannot load ..../wp-admin/admin-ajax.php.,. No 'Access-Control-Allow-Origin' header is present on...
Ho provato a modificare il file .htaccess
e questo sembrava attivare CORS, ma non ha effetto su admin-ajax.php
:
<IfModule mod_headers.c>
Header add Access-Control-Allow-Origin: *
</IfModule>
Ho anche provato a installare il plugin WP-CORS senza successo.

Esistono i filtri allowed_http_origins
e add_allowed_origins
.
Puoi utilizzarli per impostare l'header corretto Access-Control-Allow-Origin nella risposta alla tua chiamata AJAX.
Aggiungi questo al file functions.php
del tuo tema:
add_filter('allowed_http_origins', 'add_allowed_origins');
function add_allowed_origins($origins) {
$origins[] = 'https://www.tuosito.com';
return $origins;
}
