He estado trabajando en una aplicación Python de Django que publiqué recientemente en un dominio público. De antemano, había probado mi código, incluido un fragmento de código que registra la firma de un usuario después de dibujarla en un lienzo, envía la firma al servidor a través de la URL codificada en base64 y la decodifica en el otro lado.
Después de la publicación, tengo algunos problemas para enviar esta URL base64 codificada larga. Primero, superé el problema de Apache2 'Solicitud de URI demasiado largo' editando mi apache2.conf:
AccessFileName .htaccess LimitRequestLine 50000Ahora simplemente obtengo '404 No encontrado: la URL de solicitud no se encontró en el servidor'. La URL debería estar bien, de hecho, la encuentra bien cuando elimino parte de la longitud al final de la URL. Por supuesto, ya no podrá decodificar la URL. Como puede ver en mi registro de errores de Django, no hay una solicitud POST o GET, aunque estoy publicando el código desde un formulario en la página. Siento que este podría ser el problema de fondo. Intenté usar javascript para POST como se muestraaquí.
<form action="/UserDashboard/SaveSignature/" id="FormSignature" method="POST" style="width: 60%; margin-left: 20%; margin-right: 20%; height: 60%;"> <input type="submit" value="Save Signature" style="background-color: whitesmoke; width: 40%; margin-left: 30%; margin-right: 30%; height: 28%; margin-top: 10%;"/> </form> $("#ChangeSignature").click(function() { var canvas = document.querySelector("canvas"); var signaturePad = new SignaturePad(canvas, { minWidth: 5, maxWidth: 10, penColor: "rgb(0, 0, 0)", onEnd: function() { changeLink(signaturePad.toDataURL()); } }); });EDITAR: Me gustaría agregar que mi ruta Django urls.py usa una variable de ruta para 'dataURL', por lo tanto, cualquier barra diagonal en el enlace no debería afectar lo que django interpreta como la variable dataURL que viene al final del enlace.