web-dev-qa-db-fra.com

Impossible de charger admin-ajax.php. Pas de contrôle d'accès autorisé Origin *

Je ne peux pas charger admin-ajax.php et je continue à recevoir ce message d'erreur:

XMLHttpRequest ne peut pas charger ..../wp-admin/admin-ajax.php.,. Aucun en-tête 'Access-Control-Allow-Origin' n'est présent sur ...

Sur WAMP local, cela a fonctionné juste pour ajouter ceci:

header("Access-Control-Allow-Origin: *"); 

(Même si cela semble très stupide car la prochaine fois que WordPress sera mis à jour, je suppose que cela disparaîtrait.)

Lorsque je télécharge ceci sur mon serveur de production, le même message persiste:

XMLHttpRequest ne peut pas charger ..../wp-admin/admin-ajax.php.,. Aucun en-tête 'Access-Control-Allow-Origin' n'est présent sur ...

J'ai essayé de modifier le fichier .htaccess et cela semblait activer CORS, mais cela n'affectera pas admin-ajax.php:

<IfModule mod_headers.c>
   Header add Access-Control-Allow-Origin: *
</IfModule>

J'ai également essayé d'installer WP-CORS plugin sans succès.

2

Il existe des filtres pour allowed_http_origins et add_allowed_origins. Vous pouvez les utiliser pour définir le bon en-tête Access-Control-Allow-Origin dans la réponse à votre appel AJAX.

Ajoutez ceci au fichier functions.php de votre thème:

add_filter('allowed_http_origins', 'add_allowed_origins');

function add_allowed_origins($origins) {
    $origins[] = 'https://www.yourdomain.com';
    return $origins;
}
2
ben