La siguiente solicitud de Axios realizada a través de un servidor local en Redux no funciona y genera un error de CORS:
axios.post('server_url', qs.stringify({ "username": "123", "password": "123", "repassword": "123" }, { headers: { "Accept": "application/json", "Content-Type": "application/x-www-form-urlencoded", }, }))
Pero la solicitud se realiza a través de Postman, e incluso el siguiente código de python:
import requests from requests.structures import CaseInsensitiveDict url = "server url" headers = CaseInsensitiveDict() headers["Accept"] = "application/json" headers["Content-Type"] = "application/x-www-form-urlencoded" data = "username='123'&password='123'&repassword='123'" resp = requests.post(url, headers=headers, data=data) print(resp.content)
No hay acceso al servidor desde la palabra en absoluto. ¿Tal vez sea algún tipo de encabezado o algo así?
Un mensaje o cualquier solicitud a través de axios debe devolver una promesa porque la solicitud al servidor es una operación asíncrona. Por ejemplo:
const url = "http://somedomen.org"; axios.post( url, { name: "John", pass: 1, repass: 1 }, { headers: { Accept: "application/json", "Content-Type": "application/x-www-form-urlencoded", }, }, ).then(res => { return res.data })
También puedes usar async/await sintaxis
async function func() { const url = "http://somedomen.org"; const response = await axios.post( url, { name: "John", pass: 1, repass: 1 }, { headers: { Accept: "application/json", "Content-Type": "application/x-www-form-urlencoded", }, }, ) return response.data }
O para desestructurar la variable de respuesta
async function func() { const { data, status, headers } = await axios.post( //your condition... ); return { data, status, headers, }; }
Hasta que haya devuelto la promesa de un resultado, la solicitud no se puede completar. Espero haberte ayudado