Я хочу чистый способ включить CORS для моего бэкэнда WordPress. Во многих публикациях предлагается просто добавить заголовок к коду API, но редактирование ядра WordPress не требуется и в любом случае не подойдет для моей установки, так как я использую Docker.
Я пытался написать плагин так:
add_filter( 'wp_headers', array( 'send_cors_headers' ), 11, 1 );
function send_cors_headers( $headers ) {
$headers['Access-Control-Allow-Origin'] = '*';
return $headers;
}
Но это, похоже, ничего не делает, так как я все еще получаю следующую ошибку:
Failed to load http://localhost/wp-json/wp/v2/posts: Request header field Access-Control-Allow-Origin is not allowed by Access-Control-Allow-Headers in preflight response.
Ваш клиентский JavaScript пытается установить Access-Control-Allow-Origin
заголовок по запросу.
Это не имеет смысла, так как это заголовок ответа, а не заголовок запроса.
Это вызывает preflighted запрос, но ваш серверный код настроен только для обработки простых запросов.
Исправьте JS на стороне клиента.
Других решений пока нет …