5

URLにパラメータを渡す必要があります。通常の GET リクエストのように送信できません。変数と値がリクエストとともにアドレス バーに表示されます。そのため、エンド ユーザーはこの変数の値を変更し、処理される要求を送信できます。

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

この隠しを送りたいflag=2

これは GET リクエストとして送信され、アドレス バーに表示されます。これを POST に変更して値を非表示にして送信することについて何か考えがある場合は、提案してください。

4

2 に答える 2

9

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))
于 2012-05-27T13:42:11.210 に答える
3

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');

これはページをリロードしないことに注意してください。ページをリロードする場合は、Borges の回答を使用してください。

于 2013-07-21T23:58:17.427 に答える