Si te encuentras con algo que no entiendes puedes dejarlo en los comentarios y te ayudaremos lo mas rápido que podamos.
Solución:
su servidor debe habilitar las solicitudes de origen cruzado, no el cliente. Para ello, puedes consultar esta bonita página con implementaciones y configuraciones para múltiples plataformas.
Puede ayudar a alguien:
estoy enviando datos de react
aplicación a golang
servidor.
Una vez que cambie esto, w.Header().Set("Access-Control-Allow-Origin", "*")
. El error se ha solucionado.
Función de envío de formulario de reacción:
async handleSubmit(e)
e.preventDefault();
const headers =
'Content-Type': 'text/plain'
;
await axios.post(
'http://localhost:3001/login',
user_name: this.state.user_name,
password: this.state.password,
,
headers
).then(response =>
console.log("Success ========>", response);
)
.catch(error =>
console.log("Error ========>", error);
)
Ir servidor tiene enrutador,
func main()
router := mux.NewRouter()
router.HandleFunc("/login", Login.Login).Methods("POST")
log.Fatal(http.ListenAndServe(":3001", router))
Iniciar sesión.ir,
func Login(w http.ResponseWriter, r *http.Request)
var user = Models.User
data, err := ioutil.ReadAll(r.Body)
if err == nil
err := json.Unmarshal(data, &user)
if err == nil
user = Postgres.GetUser(user.UserName, user.Password)
w.Header().Set("Access-Control-Allow-Origin", "*")
json.NewEncoder(w).Encode(user)
Me he encontrado con el mismo problema. Cuando cambié el tipo de contenido, se resolvió. No estoy seguro de que esta solución lo ayude, pero tal vez lo sea. Si no te importa el tipo de contenido, funcionó para mí.
axios.defaults.headers.post['Content-Type'] ='application/x-www-form-urlencoded';
Más adelante puedes encontrar las explicaciones de otros usuarios, tú incluso eres capaz dejar el tuyo si dominas el tema.