Ich habe ein WordPress-Backend, in dem ich der API meine eigenen benutzerdefinierten Endpunkte hinzugefügt habe:
// 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' ),
)
);
Ich habe meine Umgebung wie folgt eingerichtet: https://example.com ist der Ort, an dem die React-Anwendung lebt, und WordPress befindet sich in einem Unterverzeichnis auf https://example.com/wp
Meine React-Anwendung stellt POST- und GET-Anfragen an die oben genannten Endpunkte. Ich habe eine Produktionsumgebungsvariable, in der ich die Basis-URL des API setze, die lautet (https://example.com/wp/wp-json/game
'game' ist mein Namespace) und so kann ich Anfragen mit Axios an https://example.com/wp/wp-json/game/countries
und https://example.com/wp/wp-json/game/check_answer
stellen, und hier kommt das Problem.
Mein Server ist so konfiguriert, dass er die React-Anwendung sowohl mit als auch ohne www
. Https://example.com und https://www.example.com bedienen also beide die gleiche Anwendung.
Aber dies erzeugt einige interessante Probleme für meine benutzerdefinierten Endpunkte: die GET-Anfrage funktioniert immer. aber die POST-Anforderung funktioniert nur, wenn ich sie von https://example.com aus versuche, NICHT von https://www.example.com. Im letzteren Fall zeigt sie mir einfach eine fehlgeschlagene Anfrage an. Keine Antwort, nichts
Ich habe gegoogelt und es scheint mit CORS zu tun zu haben, aber ich konnte es nicht beheben. Irgendwelche Ideen?