Tengo una aplicación de reacción para frontend y Django para backend. Actualmente estoy ejecutando la aplicación django en el servidor remoto y si hago una solicitud POST desde Postman o desde localhost, funciona bien. Pero cuando implementé la aplicación de reacción en el servidor y realicé una solicitud POST, aparece el error 404. ¿Alguien sabe por qué sucede eso?
Editar: Así es como envío mi solicitud de publicación a Django con axios.
const handleSend = () =>{ const message = { name:name, email:email, description: description } axios.post("api/messages/", message).then((res) => { if(res.statusText === "Created"){ setPage("thankyou"); } }); }Tengo un proxy configurado en el archivo package.json como (Example.com es el servidor django que se ejecuta actualmente en mi servidor apache).
"proxy": "http://example.com",Después de horas de investigación y errores de depuración, finalmente pude enviar una solicitud HTTP desde React a Django en el servidor web.
Estaba enviando una solicitud POST de HTTPS a HTTP, lo que provocó el error 404, así que agregué un certificado SSL para Django y también usé XMLHttpRequest en lugar de Axios. Aquí está mi función handleSend modificada. Espero que esto ayude a alguien en el futuro.
const handleSend = () => { const message = { name: name, email: email, description: description, }; function reqListener() { if (req.status === 201) { setPage("thankyou"); } } var req = new XMLHttpRequest(); req.addEventListener("load", reqListener); req.open("POST", "https://example.com/api/messages/", true); req.setRequestHeader("Content-Type", "application/json;charset=UTF-8"); req.send(JSON.stringify(message)); };