Ho un backend WordPress dove ho aggiunto i miei endpoint personalizzati all'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' ),
)
);
Ho impostato il mio ambiente in questo modo: https://example.com è dove vive l'applicazione React, e WordPress è in una sottodirectory, su https://example.com/wp
La mia applicazione React fa richieste POST e GET a quegli endpoint di cui sopra. Ho una variabile dell'ambiente di produzione dove imposto l'URL di base dell'API, che è (https://example.com/wp/wp-json/game
game è il mio spazio dei nomi) e quindi posso fare richieste con Axios a https://example.com/wp/wp-json/game/countries
e https://example.com/wp/wp-json/game/check_answer
ed ecco che arriva il problema.
Il mio server è configurato in modo da servire l'applicazione React sia con che senza www
. Quindi https://example.com e https://www.example.com servono entrambi la stessa applicazione.
Ma questo genera qualche problema interessante per i miei endpoint personalizzati: la richiesta GET funziona sempre. ma la richiesta POST funziona solo se la provo da https://example.com, NON da https://www.example.com . Nel caso di quest'ultima mi mostra semplicemente una richiesta fallita. Nessuna risposta, niente
Ho cercato su Google e sembra essere correlato al CORS, ma non sono riuscito a risolvere il problema. Qualche idea?