javascript - 在 Django 中通过 XMLHttpRequest 向服务器发送数据
问题描述
我正在设计一个网络应用程序,用户可以在其中将内容发布到提要。我通常通过 XMLHttpRequest 将帖子和帖子数据发送到服务器。
request = new XMLHttpRequest()
var user = 'current user'
var post = 'some text'
request.open("POST", "/sent_new_post?x=" + post + "&user=" + user)
request.setRequestHeader("X-CSRFToken", csrftoken);
request.setRequestHeader("Content-Type", "text/plain;charset=UTF-8");
request. onload = () => { // do stuff when response comes back }
request.send()
然后在服务器上访问数据
x = request.GET['x']
但是我在使用这种方法时遇到了一些问题,尤其是当帖子文本包含“#”时。我想知道我是否可以使用发送数据
request.send(data)
但我不知道如何在视图函数中访问该数据...如何访问已使用 request.send(data) 发送到服务器的视图函数中的数据????
解决方案
我不确定,因为这个问题对我来说并不完全清楚。
如果您要做的是访问您收到的请求的有效负载,那么您需要知道
在 HttpRequest 对象中,GET 和 POST 属性是 django.http.QueryDict 的实例,这是一个类似字典的类,定制用于处理同一个键的多个值。这是必要的,因为某些 HTML 表单元素,特别是1为同一个键传递多个值。
因此,您可以'data'
通过编写类似这样的内容来访问有效负载data= request.POST.get('data','')
。
推荐阅读
- google-cloud-platform - Google Cloud Build - 如何备份构建?
- python - pip 仅安装到默认的 python 安装中,我该如何更改它
- python - 在二维数组中查找特定索引的 argmin
- python - 关于 Kivy 中的属性错误的问题
- mysql - XML 将性能插入 MYSQL
- java - 使用来自 jmockit 的 MockUp 时,即使在拆解其他测试后也会使用 Mocked 方法
- c++ - 如何始终通过某种方法强制执行该构造?
- javascript - 仅将样式应用于所选选项
- c# - 如何将控制器中的参数序列化为 JSON?
- python - Python Flask Jinja 动态路由