如何将本地存储数据提交到 Django
How can I submit localStorage data to Django?
我在localStorage中有数据,我想通过POST请求将其与userid一起提交给Django。我该如何完成这项工作?
1)发送Ajax请求:它需要csrf令牌,我无法使其有效。
function submitData() {
// send result to server
var data = localStorage.getItem("groups");
var userid = {{user.userid}};
console.log(data);
$.ajax({
url:"/interface/submit/",
type:"POST",
data: { group:data,
userid:userid,
csrfmiddlewaretoken: '{{ csrf_token }}'},
success:function() {
alert("Submitted succeffully");
window.location = "/interface/";
}
})
}
2)使用Django表单:目前我只能从字段中获取信息,而不是localStorage。
<form action="/interface/submit/" method="post">
{% csrf_token %}
<input type="submit" value="Submit">
</form>
使用第一种方法时出错:
请求信息
GET
Variable Value
csrfmiddlewaretoken
u'{{ csrf_token }}'
group
u'371,197,220,306,213,328,399,373,283,end,371,197,220,306,213,328,399,373,283,end,371,197,220,end,'
POST
No POST data
FILES
No FILES data
COOKIES
Variable Value
csrftoken
'F8jc4jObrxI2bQ6Y3CgCiuf6MTOpf2Uo'
sessionid
'8uvrhe9yytpam38h5xb4tnvz8ijiui4p'
关于 1) 您的模板是否在使用 ajax 代码的地方呈现带有 {% csrf_token %} 的表单?如果没有,Django 将不会发送带有响应的新 csrf cookie。
https://docs.djangoproject.com/en/dev/ref/csrf/#ajax
如果你的视图没有呈现包含csrf_token模板标签的模板,Django 可能不会设置 CSRF 令牌 cookie。这在表单动态添加到页面的情况下很常见。为了解决这个问题,Django 提供了一个视图装饰器,它强制设置 cookie:ensure_csrf_cookie()。
相关文章:
- JS表单提交"无法使用Chrome数据保护程序加载此页面.尝试重新加载页面.调试信息:POST CISmtuK
- 在php中提交数据时,如果某些值为null,而某些值为非null,如何进行查询
- 如何在不重新加载的情况下提交表单,并使用Node+Express将数据传递回同一页面
- 如何将本地存储数据提交到 Django
- Javascript:使用表单与不使用表单进行数据提交
- writeln img src将数据提交到外部系统-Firefox和IE挂起
- 表单将数据提交到数据库和url
- 根据 Ajax 返回的数据提交表单
- 如何在没有AJAX的情况下将数据提交到CouchDB(使用普通形式的PUT)
- 创建新记录并使用成员数据提交事务
- 在将数据提交到数据库后,点击代码点火器按钮,用DOMPDF生成PDF
- 如何避免struts1.1中的双重数据提交
- 为什么我的Javascript不添加数据提交
- jQuery AJAX PUT请求数据提交不工作
- 如果信息无效,则使用jquery、Ajax将数据提交到数据库
- 使用从另一个表单接收到的数据提交登录表单
- AngularJS–将数据提交到新的url
- 烬数据不发送数据提交
- Javascript或Jquery检测页面刷新和重定向到错误页面-避免重复的数据提交
- 以下数据提交方法的缺点是什么?