如何让我的views.py中的XMLHttpResponse发送数据?

时间:2017-09-05 04:03:14

标签: python django xmlhttprequest

在模板中我发送数据使用XMLHttpResponse。

我的代码如下:

...
<input type="button" value="ajax1" onclick="ajax1()">


<script>

    function ajax1(){
        var xhr = new XMLHttpRequest();
        xhr.open('GET', '/ajax1/', true);  
        xhr.send("name=root;pwd=123");  // send data
    }

</script>

但我如何在views.py中接收数据?

在我的views.py

def ajax1(request):
    print request.GET.get('name'), request.GET.get('pwd') # all is None.
    return HttpResponse('ajax1')

您看,我使用request.GET.get(param_key)来获取数据失败。

如何让我的views.py中的XMLHttpResponse发送数据?

1 个答案:

答案 0 :(得分:0)

您应该知道XMLHttpResponse的send()方法是发送请求正文。 您的请求方法是GET。所以你不能传递数据。

您尝试使用post方法传递如下数据:

function ajax1(){
    var xhr = getXHR();

    xhr.onreadystatechange = function(){  
        if (xhr.readyState == 4) {   

            console.log(xhr.responseText); 

            var json_obj = JSON.parse(xhr.responseText);
            console.log(json_obj);

        }
    }; 

    xhr.open("POST", "/ajax1/", true);   
    xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset-UTF-8"); // add the request header

    xhr.send("name=root; pwd=123;");  // send data
}