Хобрук: Ваш путь к мастерству в программировании

как отправить параметр URL в запросе POST без формы

Мне нужно передать параметр в URL. Я не могу отправить его, как обычный запрос GET, переменная и значение отображаются в адресной строке с запросом. Таким образом, конечный пользователь может изменить значение этой переменной и отправить запрос, который будет обработан.

href="url=/admin/usermanagement/?flag=2

Я хочу отправить это сокрытие flag=2

теперь это идет как запрос GET и отображается в адресной строке. Пожалуйста, дайте свое предложение, если у вас есть идея изменить это на POST, чтобы скрыть и отправить значение.


  • переход на POST-запросы только добавит неясности, но не помешает пользователям изменять значение и делать запросы. 27.05.2012
  • хм, да, я знаю, что они все еще могут просматривать его с помощью firebug. Но в моем случае этого уровня безопасности достаточно. В любом случае, я приветствую, если у вас есть хорошие предложения для этого случая. Спасибо за ваш комментарий. 27.05.2012

Ответы:


1

Вы все еще можете использовать html-форму, но «скрыть» ее от пользователя:

<!DOCTYPE html>
<html>
    <body>
        <form id="myform" method="post" action="/">
            {% csrf_token %}
            <input type="hidden" name="flag" value="2" />
            <a href="#" onclick="document.forms[0].submit();return false;">Let's go!</a>
        </form>
    </body>
</html>

И вид:

def index(request):
    if request.method == 'POST':
        try:
            flag = request.POST['flag']
            # TODO use flag
        except KeyError:
            print 'Where is my flag?'

    return render_to_response('index.html', {},
        context_instance=RequestContext(request))
27.05.2012
  • Это сработало блестяще для меня, именно то, что мне нужно! 17.06.2014
  • @Maximas Если он ответил на ваш вопрос, вы должны принять ответ, щелкнув галочку слева от ответа. 10.05.2015
  • @sort-of-a-beginner Это не мой пост? 18.05.2015
  • @Maximas Извините, я думал, что вы отвечаете на вопрос Борхеса, поэтому я предположил, что это был ваш вопрос. В следующий раз надо будет посмотреть поближе. 19.05.2015

  • 2

    Вы можете использовать AJAX, чтобы полностью избавиться от форм.

    Просто добавьте это в свой JavaScript:

    function postTo(url, query) {
        var request = (XMLHttpRequest?new XMLHttpRequest():new ActiveXObject());
        request.open('POST', url, true);
        request.send(query);
    }
    

    Затем вызовите что-то вроде этого:

    postTo('/admin/usermanagement/','flag=2');
    

    Обратите внимание, что это НЕ перезагрузит страницу. Если вы хотите перезагрузить страницу, используйте ответ Борхеса.

    21.07.2013
  • Как насчет проверки CSRF? Я получаю ошибку проверки. 03.08.2015
  • @GobSmack Есть ответ на этот здесь с использованием JQuery . 04.08.2015
  • Новые материалы

    Я собираюсь научить вас Python шаг за шагом
    Привет, уважаемый энтузиаст Python! 👋 Готовы погрузиться в мир Python? Сегодня я приготовил для вас кое-что интересное, что сделает ваше путешествие более приятным, чем шарик мороженого в..

    Альтернатива шаблону исходящих сообщений для архитектуры микросервисов
    Познакомьтесь с двухэтапным сообщением В этой статье предлагается альтернативный шаблон для папки Исходящие : двухэтапное сообщение. Он основан не на очереди сообщений, а на..

    React on Rails
    Основное приложение Reverb - это всеми любимый монолит Rails. Он отлично обслуживает наш API и уровень просмотра трафика. По мере роста мы добавляли больше интерактивных элементов..

    Что такое гибкие методологии разработки программного обеспечения
    Что представляют собой гибкие методологии разработки программного обеспечения в 2023 году Agile-методологии разработки программного обеспечения заключаются в следующем: И. Введение A...

    Ториго  — революция в игре Го
    Наш следующий вызов против ИИ и для ИИ. Сможет ли он победить людей в обновленной игре Го? Обратите внимание, что в следующей статье AI означает искусственный интеллект, а Goban  —..

    Простое развертывание моделей с помощью Mlflow — Упаковка классификатора обзоров продуктов NLP от HuggingFace
    Как сохранить свои модели машинного обучения в формате с открытым исходным кодом с помощью MLFlow, чтобы позже получить возможность легкого развертывания. Сегодня модели упаковки имеют несколько..

    Математика и интуиция - Часть 1
    У каждой математической формулы есть доказательство. Часто эти доказательства слишком сложно понять, поскольку многие из них основаны на индукции, некоторые - на очень сложных наблюдениях, а..