LINUX.ORG.RU

Djnago, ajax - error 405!

 , , , ,


0

2

Всем привет!

Решил вынести все вьюхи, вызываемые посредством ajax, в отдельный файл - ajax.py. После этого все сломалось:(

Теперь при попытке отработать ajax-вьюху, в консоле получаю ошибку 405!

ajax.py

@csrf_exempt
def get_categories_by_type(request):
    """
    :param request
    :return:
    """
    print("DEBUG")
    ...
    response = ...
    return HttpResponse(json.dumps(response), content_type="application/json")

urls.py

 # Ajax views
 ...
 url(r"^get_categories_by_type/$", get_categories_by_type, name="get_categories_by_type"),

app.js

var csrftoken = $.cookie('csrftoken');

function csrfSafeMethod(method) {
// these HTTP methods do not require CSRF protection
    return (/^(GET|HEAD|OPTIONS|TRACE)$/.test(method));
}

$.ajaxSetup({
    beforeSend: function(xhr, settings) {
        if (!csrfSafeMethod(settings.type) && !this.crossDomain) {
                    xhr.setRequestHeader("X-CSRFToken", csrftoken);
        }
    }
});

...

getCategoryList: function() {
    var data = {...};
    $.ajax({
        type: "POST",
        url: "/get_categories_by_type/",
        data: data,
        dataType: "json",
        success: function(data) {
            ...
        }
    });
},

"POST /get_categories_by_type/ HTTP/1.1" 405 0

Что за НЕХ такой(?


If your view is not rendering a template containing the csrf_token template tag, Django might not set the CSRF token cookie. This is common in cases where forms are dynamically added to the page. To address this case, Django provides a view decorator which forces setting of the cookie: ensure_csrf_cookie().

bj
()

джанга-джанга весело живем

джанга-джанга песенки поем

ешь кокосы ешь бананы

А тем временем, другие давно спустились с пальм, встали на 2 ноги и занимаются разработкой.

anonymous
()
Ответ на: комментарий от djnoob

Не помогло(

Зная твою косорукость, ты мог неправильно сделать везде. Включая список мидлварь.

bj
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.