У меня есть бэкэнд WordPress, где я добавил свои собственные пользовательские конечные точки в API:
// retrieve countries
register_rest_route( $namespace, '/countries',
array(
'methods' => 'GET',
'callback' => array( $this, 'get_countries' ),
)
);
// check answer
register_rest_route( $namespace, '/check_answer',
array(
'methods' => 'POST',
'callback' => array( $this, 'check_answer' ),
)
);
Я настроил свое окружение следующим образом: https://example.com - это то место, где живет приложение React, а WordPress - в подкаталоге, на https://example.com/wp
Мое React приложение делает POST и GET запросы к тем конечным точкам, которые указаны выше. У меня есть переменная среды производства, где я устанавливаю базовый URL API, который (https://example.com/wp/wp-json/game
'game' - мое пространство имен), и поэтому я могу делать запросы с Axios, https://example.com/wp/wp-json/game/countries
и https://example.com/wp/wp-json/game/check_answer
вот тут-то и возникает проблема.
Мой сервер настроен так, что он обслуживает приложение React как с безwww
, так и с без. Так что https://example.com и https://www.example.com оба служат одному и тому же приложению.
Но это создает интересную проблему для моих пользовательских конечных точек: запрос GET всегда работает. Но POST-запрос работает только в том случае, если я пытаюсь его выполнить с https://example.com, а не с https://www.example.com . В случае последнего он просто показывает мне неудачный запрос. Нет ответа, ничего
Я погуглил и, кажется, это связано с CORS, но я не смог это исправить. Есть идеи?