django认可request.method =" POST" as" GET"

时间:2015-10-09 18:00:52

标签: javascript ajax

我看到很多类似的问题,但没有人解决过。 我有ajax请求:

    <script type="text/javascript">
$('#activeform').on('submit', function(event){
        event.preventDefault();
    var _self = $(this);
    var token = $('input[name="csrfmiddlewaretoken"]').val();
        alert( _self.serialize())  // sanity check
            $.ajax({
        type: _self.attr('method'),
        url: _self.attr('action'),
        data: _self.serialize(),
        contentType: "application/x-www-form-urlencoded;charset=utf-8",
        headers: {"X-CSRFToken": token},
        beforeSend: function(xhr) {
            xhr.setRequestHeader("Accept-Charset","utf-8");
            xhr.setRequestHeader("Content-Type","application/x-www-form-urlencoded;charset=utf-8");},
                success: function(json) {
                    alert("Send!")},
                error: function( xhr, textStatus ) {
                alert( [ xhr.status, textStatus ] )},
            complete: function() {
                    alert("Complete")},
            crossDomain: false
            });
return 
}); </script>

这一次成功完成,我获得了成功并完成了msgs。 浏览器还会在提交时识别POST请求。但是我的django观点  request.method ==&#39; POST&#39;返回False。有人有建议吗?

1 个答案:

答案 0 :(得分:0)

我用ajax进行注册还有很长的路要走。因此,下面的代码可以达成交易。

<body>
<div class='large-3 large-offset-3 columns'>
    <form method='POST' id="activeform" >
    {% csrf_token %}
    {{form}}
    {% if error %}
    <p><h6>{{error}}</h6></p>
    {% endif %}
    <input type='button' class='button' value='Зарегистрироваться' onclick="submit_by_id()"> 
    </form>
</div>


<script type="text/javascript">
    function submit_by_id()  {
        alert('Перед аджаксом');
        var token = $('input[name="csrfmiddlewaretoken"]').val();
                $.ajax({
            method: "POST",
            url: "/auth/registrate/",
            data: $('#activeform').serialize(),
            contentType:"application/x-www-form-urlencoded; charset=UTF-8",
            dataType:"html",
                    success: function(data, textStatus, jqXHR) {
                        //код в этом блоке выполняется при успешной отправке сообщения
                        alert("Успех" + data + 'Serialized string ' + $('#activeform').serialize())},
                    error: function( xhr, textStatus ) {
                    alert( [ xhr.status, textStatus ] )},
                complete: function() {
                        //код в этом блоке выполняется при успешной отправке сообщения
                        alert("Комплит")},
            headers: {"X-CSRFToken": token, "HTTP_X_REQUESTED_WITH": "XMLHttpRequest"},
            crossDomain: false

        });
    }
</script>

</body>