Wordpress API и нарушение правил перекрестного происхождения Angular - PullRequest
0 голосов
/ 04 июня 2019

Я знаю, что здесь много тем по этому вопросу, но, похоже, ничто не поможет.У меня есть приложение Angular 7, работающее на http://localhost:4201 и сайт Wordpress с включенным REST API.Если я позвоню http://appsite.com:8080/wp-json/ (на самом деле это также локальный сервер, работающий на OpenServer), я получу огромный JSON со всей информацией моего сайта, так что я уверен, что API работает.Но когда я пытаюсь вызвать этот URL из моего приложения Angular, я всегда получаю эту ошибку

Доступ к XMLHttpRequest по адресу http://appsite.com:8080/wp-json/' от источника 'http://localhost:4201' заблокированПолитика CORS: Ответ на запрос предварительной проверки не проходит проверку контроля доступа: в запрошенном ресурсе отсутствует заголовок «Access-Control-Allow-Origin».

У меня есть эта ловушка уwordpress functions.php

add_action( 'rest_api_init', function() {
    remove_filter( 'rest_pre_serve_request', 'rest_send_cors_headers' );
    add_filter( 'rest_pre_serve_request', function( $value ) {
        header( 'Access-Control-Allow-Origin: *' );
        header( 'Access-Control-Allow-Methods: POST, GET, OPTIONS, PUT, DELETE' );
        header( 'Access-Control-Allow-Credentials: true' );
        return $value;
    });
}, 15 );

Но это не работает.Я даже пытался назвать это header( 'Access-Control-Allow-Origin: *' ); в index.php

Что с этим не так?

1 Ответ

0 голосов
/ 04 июня 2019

Что ж, проблема решена после того, как я очистил кеш браузера.

...