Estoy usando django con react, pero django maneja los csrf_token entonces como tengo un form en mi component al hacer post me da error.

Pregunta de la clase:
Manuel Galindez

Manuel Galindez

Pregunta
studenthace 8 años

¿Como puedo solucinarlo?, he intentado de la forma que me dice la documentación de django y aun no me funciona.

4 respuestas
para escribir tu comentario
    Luis Fernando Tirado Hernández

    Luis Fernando Tirado Hernández

    studenthace 4 años

    Hola, tengo el mismo problema, pero a mi me dice que la cookie es undefined con la dependencia de js-cookies, y con el método que viene en la doc oficial de django se queda con el valor nulo, y por ello me manda un error al darle ese valor al input. No sé si la que está mal es la conexión con el backend de Django, porque no me está generando el csrftoken

    Manuel Galindez

    Manuel Galindez

    studenthace 8 años

    Listo los dos metodos son correctos, el error era por parte mia al momento de organizar los datos que enviaba.

    Manuel Galindez

    Manuel Galindez

    studenthace 8 años
    render() { const csrftoken = Cookies.get('csrftoken'); return <form method="post"> <input type="hidden" name="csrfmiddlewaretoken" value={ csrftoken } /> <div className="margin-bottom"> <label className="block">Nombre de usuario</label> <input className="Inputext" type="text" name="username" required /> </div> <div className="margin-bottom"> <label className="block">Nombre de usuario</label> <input className="Inputext" type="text" name="username" required /> </div> </form> }

    Algo así estoy haciendo pero voy a probar de la otra forma

    Sergio Daniel Xalambrí

    Sergio Daniel Xalambrí

    studenthace 8 años

    Hay dos formas:

    1. Obtené el CSRF token y mandalo como un
      prop
      a tu aplicación de React, de esa forma podes hacer que React renderice un
      input
      de tipo hidden con el CSRF token similar al que coloca Django.
    2. El CSRF Token se guarda en una cookie, podés al momento de enviar el formulario por AJAX obtener ese token de la query y enviarlo en el header de la petición con el nombre
      X-CSRFToken
      .

    Ambas formas hacen que Django pueda leer el CSRF token sin problemas.

Curso Profesional de React con Redux 2016

Curso Profesional de React con Redux 2016

Desarrolla apps modulares en Javascript con React.js, la librería de más crecimiento en la web, creada por Facebook. Aprende desarrollo ágil de aplicaciones web con Redux y JSX.

Curso Profesional de React con Redux 2016
Curso Profesional de React con Redux 2016

Curso Profesional de React con Redux 2016

Desarrolla apps modulares en Javascript con React.js, la librería de más crecimiento en la web, creada por Facebook. Aprende desarrollo ágil de aplicaciones web con Redux y JSX.