si ejecuto curl localhost:8080/recipes funciona. Pero si uso mi codigo en javascript en firefox me aparece los siguientes errores:
Sin embargo, si usa directamente la URL, funciona:
Mi código de cliente en javascript es muy simple:
const url = 'http://localhost:8080'; const ul = document.getElementById('parrafo'); const list = document.createDocumentFragment(); const btn = document.getElementById("boton"); btn.addEventListener("click", function () { sendData(); }); function sendData(){ fetch(url + "/recipes") .then((response) => { return response.json(); }) .then((data) => { let recipes = data; recipes.map(function(recipe) { let li = document.createElement('li'); let name = document.createElement('h2'); let id = document.createElement('span'); name.innerHTML = `${recipe.name}`; id.innerHTML = `${recipe.id}`; li.appendChild(name); li.appendChild(id); list.appendChild(li); }); }) .catch(function(error) { console.log(error); }); ul.appendChild(list); }Gracias por adelantado
====================================
En la misma máquina, en entorno de desarrollador, ¿cómo se debe ejecutar el frontend, directamente en un navegador? (¿Lo abro directamente con firefox?) Con el backend no tengo ningún problema, funciona perfectamente.
Está intentando conectarse a localhost con "https", lo que hace que su solicitud sea un error.
en la URL su solicitud es con "HTTP". así que cambia esta línea:
const url = 'http://localhost:8080';Debe usar un proxy en el lado del cliente o habilitar CORS en el lado del servidor. De forma predeterminada, las solicitudes entre dos puertos diferentes están deshabilitadas por CORS
Lo arreglé yo mismo es fácil:
import ( "encoding/json" "io/ioutil" "net/http" "time" "github.com/gin-contrib/cors" "github.com/gin-gonic/gin" )Usando el paquete cors tengo que agregar la siguiente línea: ** router.Use(cors.Default()) ** ¡¡Gracias!!