繁体   English   中英

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

[英]XMLHttpRequest is not sending POST data to Django server

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");

Django 视图:

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

        print("django server")
        print(request.POST)

服务器正在打印:

django server
<QueryDict: {}>

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

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

def register_user(request):
    if request.method == "POST":
        print(request.body) # this would print "data"

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

试试这个对我有用

from django.views.decorators.csrf import csrf_exempt
from django.http import HttpResponse

@csrf_exempt
def register_user(request):
    if request.is_ajax():
        status = "1"
    else:
        status = "0"
    return HttpResponse(status)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM