Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django 如何在没有表单的POST请求中发送url参数_Django_Url_Httpwebrequest_Url Parameters - Fatal编程技术网

Django 如何在没有表单的POST请求中发送url参数

Django 如何在没有表单的POST请求中发送url参数,django,url,httpwebrequest,url-parameters,Django,Url,Httpwebrequest,Url Parameters,我必须在url中传递一个参数。我不能像往常一样发送GET请求。变量和值与请求一起显示在地址栏中。因此,最终用户可以更改此变量值的值,并发送将被处理的请求 href="url=/admin/usermanagement/?flag=2 我想发送此隐藏flag=2 现在,这将作为GET请求,并显示在地址栏中。如果您对将此更改为POST以隐藏和发送值有任何想法,请给出您的建议。您仍然可以使用html表单,但对用户“隐藏”它: <!DOCTYPE html> <html>

我必须在url中传递一个参数。我不能像往常一样发送GET请求。变量和值与请求一起显示在地址栏中。因此,最终用户可以更改此变量值的值,并发送将被处理的请求

href="url=/admin/usermanagement/?flag=2
我想发送此隐藏
flag=2


现在,这将作为GET请求,并显示在地址栏中。如果您对将此更改为POST以隐藏和发送值有任何想法,请给出您的建议。

您仍然可以使用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>

您可以使用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');

请注意,这将而不是重新加载页面。如果你想重新加载页面,请使用博尔赫斯的答案。

移动到POST请求只会增加一些模糊性,它不会阻止用户更改值并发出请求。嗯,是的,我知道他们仍然可以使用firebug查看。但是,对于我来说,这种安全级别已经足够了。无论如何,如果你对这个案子有什么好的建议,我欢迎。谢谢你的评论。这对我来说非常有效,正是我所需要的@Maximas如果它回答了你的问题,你应该通过点击答案左侧的复选标记来接受答案。@sort-a-初学者这不是我的帖子?@Maximas抱歉,我以为你在回答博尔赫斯的问题,因此我认为这是你的问题。下次我得仔细看看。CSRF验证呢?我得到了一个验证错误。@GobSmack使用JQuery有一个答案。
postTo('/admin/usermanagement/','flag=2');