Estoy tratando de ejecutar un ejemplo simple que consume la lista de slugs de página de la API REST de WordPress, pero me encuentro con un comportamiento muy extraño.
Tengo una función asíncrona getPageList() que simplemente llama a la API de WP usando fetch .
const getPages = async (path) => { return await fetch(process.env.NEXT_PUBLIC_WP_API_URL + "/pages?_fields=slug", { method: 'GET', headers: { 'Content-Type': 'application/json', 'Accept': 'application/json' } }) }Ejecutando a través del navegador, no tengo problemas para llamar a este método y obtener los resultados:
export default function Example() { useEffect(() => { getPageList().then(pages => console.log(pages)) }, []); // OK return null } Sin embargo, si trato de ejecutar la misma llamada desde el servidor, dentro de getStaticProps , recibo el error FetchError: request to http://localhost:8000/wp-json/wp/v2/pages?_fields=slug failed, reason: connect ECONNREFUSED 127.0.0.1:8000
Este es el fragmento de código:
export async function getStaticProps() { const pages = await getPageList() //(....) }Si consulto esta URL usando Postman o simplemente copio y pego en el navegador, también funciona sin problemas.
¿Alguna idea sobre lo que está pasando?
Estoy usando create-next-app, Node 16.13.0, Wordpress 5.8.2, PHP 7.4.3 ejecutándose usando un servidor de desarrollo local ( php -S localhost:8000 )
¡Gracias de antemano!
Esto estaba relacionado con la forma en que estaba iniciando mi servidor integrado de PHP. Cambiarlo a php -S 127.0.0.1:8000 en lugar de localhost:8000 solucionó el problema.