Próbuję utworzyć przekierowanie w widoku Django do zewnętrznego adresu URL z niektórymi parametrami pobierania dołączonymi do żądania. Po pewnym rozejrzeniu się i kilku próbach wydaje mi się, że trafiłem na blokadę.Zewnętrzne przekierowanie django z parametrami POST
Tak moim zdaniem wygląda coś takiego
def view(request):
data = get.data(request)
if something in data:
return HttpResponseRedirect('example.com')
to jest tak daleko, jak udało mi się dostać. Wiem, że w adresie URL żądania można określić kilka parametrów GET jak to:
...
return HttpResponseRedirect('example.com?name=smith&color=brown')
Jednak ponieważ niektóre dane są poufne i nie chcę to skończyć w adresie URL. Ponieważ jest to zewnętrzny adres URL, nie mogę użyć skrótu redirect(), który akceptuje parametry widoku. Więc módl się, powiedz, w jaki sposób można wykonać takie zadanie?
Edit
Po zrobiwszy kilka rozglądać, i pobajdurzyliśmy w IRC, wydaje się, że to, co należy zrobić, aby utrzymać parametr uciec od użytkowników, zawierające informacje o płatności jest zamiast tego wyślij je jako post. Powiedziano mi, że powinieneś być w stanie to zrobić, używając również JS, być może jQuery. Pytanie pozostaje jednak nieco bardziej skomplikowane. W jaki sposób chciałbyś stworzyć przekierowanie postu w django przy pomocy javascript?
2-te Edit
Wydaje się, jakbym został wprowadzony w błąd. Dzięki za wyczyszczenie tego z protokołami przekierowania DR. Wygląda na to, że podążałem niewłaściwą ścieżką w mojej próbie użycia przekierowania do rozwiązania tego problemu.
To sprytny sposób na uniknięcie przekierowania. Jest to jednak zależne od javascriptu, więc musiałbym również dokonać pełnej gracji degradacji. Zastanawiam się, jak gładko to będzie w praktyce, trzeba załadować stronę, zanim będzie można zrobić post js. – googletorp
Tak, to rozwiązanie zależy od włączenia obsługi JavaScript w przeglądarce, ale nie oznacza to, że musisz to zrobić bezpośrednio na tej stronie. Powinieneś sprawdzić JavaScript zanim jeszcze dojdziesz do swojego widoku. Tak więc, jeśli nie jest włączona, użytkownik nie zajdzie nawet tak daleko. Jeśli chodzi o ładowanie strony, zależy to od tego, jak szybki jest powrót do widoku i jak duży jest wynik HTML. Jeśli masz tylko kilka pól, renderowanie strony, które zgaduję, odbyłoby się pod sekundą. Samo przekierowanie również jest szybkie, więc korzystanie z tego rozwiązania jest bardzo podobne do zwykłego przekierowania. –
Ale jakie są implikacje tego rozwiązania dla bezpieczeństwa? Chcę POST parametry do bramy płatności. Czy wysyłanie poufnych danych, takich jak mój auth_id itp., Jest bezpieczne dla użytkownika? Czy nie ma innego sposobu? – sudshekhar