首页 > 解决方案 > 在 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) 发送到服务器的视图函数中的数据????

标签: javascriptdjangoxmlhttprequest

解决方案


我不确定,因为这个问题对我来说并不完全清楚。

如果您要做的是访问您收到的请求的有效负载,那么您需要知道

在 HttpRequest 对象中,GET 和 POST 属性是 django.http.QueryDict 的实例,这是一个类似字典的类,定制用于处理同一个键的多个值。这是必要的,因为某些 HTML 表单元素,特别是1为同一个键传递多个值。

因此,您可以'data'通过编写类似这样的内容来访问有效负载data= request.POST.get('data','')


推荐阅读