Pregunta

Sin embargo, tengo pijamas y django a través de apache2 con mod_wsgi en Windows 7. No creo que tenga problemas de las configuraciones de estas cosas: lo único que no funciona es tratar de publicar información de Pyjamas generado formas. Intentar usar formularios generados por Pyjamas en mi aplicación produce 403 (la página de error "VERIFICACIÓN DE CSRF").

He pasado horas en esto y leí todas las respuestas que pude encontrar aquí relacionadas con CSRF y pijamas, y hice muchas investigaciones externas solo en CSRF y Django, Django y Ajax, etc. Si esta pregunta no llega a nadie. Quién ha sabido qué hacer en esta situación, creo que he reducido la esencia de la pregunta.

¿Cómo obtendría uno el {% csrf_token %} ¿En la forma generada por Pyjamas? Parece que podría ser imposible, porque por lo que entiendo los tokens CSRF no son persistentes, que es una página generada por pijamas ... mi página de pijama se genera a partir de un pijama .py Archivo, lo que resulta en una carpeta llena de cosas codificadas. ¿Cómo es que integraría el token CSRF actual en esa forma ya codificada?

No dude en pedir más detalles, este problema ha sido increíblemente difícil de navegar. Ninguna de la información publicada sobre la integración de pijamas y django considera esto; Y las únicas soluciones que he encontrado que parecen conscientes de CSRF en Django dicen que probablemente deberías deshabilitar la protección de CSRF (que yo pudo Hacer, pero ¿qué protección podría poner en lugar de ella? Mi propio sistema de cookies? ¿Es una idea terrible deshabilitar la protección de CSRF en cualquier caso?).

¡Gracias!

¿Fue útil?

Solución

Deberá escribir un JavaScript para obtener el token CSRF de la cookie (parte de la solicitud HTTP), luego agregarlo al formulario en enviar.

Mira esta respuesta para un punto de partida: DJANGO CSRF Verifique que falla con una solicitud de publicación AJAX

La clave aquí es que el JavaScript puede ser tan persistente como sus archivos generados por Pyjamas, porque aplazan el manejo del token hasta que se envíe el formulario.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top