I cannot load admin-ajax.php
and I keep getting this error message:
XMLHttpRequest cannot load …./wp-admin/admin-ajax.php.,. No
‘Access-Control-Allow-Origin’ header is present on…
On local WAMP it worked just to add this:
header("Access-Control-Allow-Origin: *");
(Even if this seems very stupid because next time WordPress updates I guess this would disappear.)
When I upload this to my production server it’s still the same message:
XMLHttpRequest cannot load …./wp-admin/admin-ajax.php.,. No
‘Access-Control-Allow-Origin’ header is present on…
I’ve tried to modify the .htaccess
file and that seemed to activate CORS, but that won’t affect admin-ajax.php
:
<IfModule mod_headers.c>
Header add Access-Control-Allow-Origin: *
</IfModule>
I’ve also tried to install WP-CORS plugin without success.
2 Answers
There are filters for allowed_http_origins
and add_allowed_origins
.
You can use them to set the proper Access-Control-Allow-Origin header in the response to your AJAX call.
Add this to your theme’s functions.php
file:
add_filter('allowed_http_origins', 'add_allowed_origins');
function add_allowed_origins($origins) {
$origins[] = 'https://www.yourdomain.com';
return $origins;
}