XMLHttpRequest 未将 POST 数据发送到 Django 服务器

Art*_*ate 2 javascript django django-views python-3.x

Javascript 通过 XMLHttpRequest 发送数据

csrftoken = getCookie('csrftoken'); 
var request = new XMLHttpRequest();
request.open('POST', '/register');
request.setRequestHeader("X-CSRFToken", csrftoken); 
request.setRequestHeader("Content-Type", "text/plain;charset=UTF-8"); 
request.send("data");
Run Code Online (Sandbox Code Playgroud)

姜戈视图:

def register_user(request):
    if request.method == "POST":

        print("django server")
        print(request.POST)
Run Code Online (Sandbox Code Playgroud)

服务器正在打印:

django server
<QueryDict: {}>
Run Code Online (Sandbox Code Playgroud)

我还将 triend application/json 作为带有 json 数据的内容类型,但这也不起作用。数据似乎没有被传递到服务器。不知道为什么。

Art*_*ate 9

该请求实际上正在发送。这是访问数据的方法:

def register_user(request):
    if request.method == "POST":
        print(request.body) # this would print "data"
Run Code Online (Sandbox Code Playgroud)

为了让 print(request.POST) 工作,Content-Type 必须是 'application/x-www-form-urlencoded'