form ejemplos jquery django redirect external post-parameter

ejemplos - redirect jquery



Redireccionamiento django externo con parĂ¡metros POST (3)

Estoy intentando crear una redirección en una vista de Django a una URL externa con algunos parámetros de obtención adjuntos a la solicitud. Después de mirar un poco a mi alrededor y de intentarlo, parece que me he topado con un bloqueo de carretera.

Así que mi punto de vista se ve algo como esto

def view(request): data = get.data(request) if something in data: return HttpResponseRedirect(''example.com'')

Esto es todo lo que pude conseguir. Sé que usted en la url de solicitud puede especificar algunos parámetros de obtención como este:

... return HttpResponseRedirect(''example.com?name=smith&color=brown'')

Sin embargo, dado que algunos de los datos son confidenciales, no quiero que terminen en la url. Dado que es una url externa, no puedo usar el acceso directo redirect () que acepta parámetros de vistas. Así que, por favor, dime, ¿cómo se puede lograr una tarea así?

Editar

Después de haber mirado un poco más a mi alrededor y de haber conversado un poco en IRC, parece que lo que debo hacer, para mantener el parámetro get lejos de los usuarios, que contenga información de pago, es enviarlos como publicaciones. Me dijeron que debería poder hacerlo usando también algún JS, posiblemente jQuery. La pregunta sigue siendo un poco más complicada ahora. ¿Cómo se podría hacer para crear una redirección de publicaciones en django con la ayuda de javascript?

2ª Edición

Parece que he sido mal informado. Gracias por aclarar eso con los protocolos de redireccionamiento DR. Parece que he ido por el camino equivocado en mi intento de usar la redirección para resolver este problema.


Los parámetros GET siempre van en la URL, eso es lo que los hace parámetros GET.

No es posible redireccionar usando parámetros POST (que no van en la URL), esto es una restricción de HTTP, no de Django.


No estoy de acuerdo con Daniel, hay una manera de evitar la limitación HTTP de redireccionar solo con get params. Lo que estoy pensando es:

  1. Redirigir a un destino GET con los parámetros que desee.
  2. En la página GET, configure un formulario con los parámetros que reenvió
  3. Auto enviar el formulario.

Eso es lo que hacen la mayoría de los servicios de descarga de archivos y, a veces, incluso las páginas de pago (Paypal y demás). De hecho, es un poco feo (1 salto más) pero tiene sus propios beneficios.


Sugiero el siguiente enfoque. En su formulario / vista de Django, devuelva el formulario al navegador con todos los parámetros que desea publicar como elementos de formulario ocultos. Tan pronto como el formulario se cargue, el formulario de JavaScript enviará (POST) a donde quieras.

Ver:

from django.shortcuts import render_to_response def view(request): return render_to_response(''test.html'', { ''foo'': 123, ''bar'': 456 })

Modelo:

<html> <head> <title>test</title> <script type="text/javascript"> function load() { window.document.test.submit(); return; } </script> </head> <body onload="load()"> <form name="test" method="post" action="http://www.example.com"> <input type="hidden" name="foo" value={{ foo }} /> <input type="hidden" name="bar" value={{ bar }} /> </form> </body> </html>