получать ПОСТ500 (ОК), при использовании $ .ajax POST для отправки json в представление django - PullRequest
0 голосов
/ 01 апреля 2012

Edite: уточнил код в соответствии с рекомендациями в комментариях, но все равно не повезло

Обновление: спасибо ThiefMaster после того, как следовал вашему совету, я обнаружил ошибку в своей функции просмотра, но после исправления теперь я попадаю в отладку django

Запрещено (403)

Ошибка проверки CSRF.Запрос отменен.Справка Причина сбоя: токен CSRF отсутствует или неверен.


Я пытаюсь использовать jquery ajax для отправки данных json в django

вот мой js-код

$("#send").click(function () {
    var events = $('#calendar').fullCalendar('clientEvents');
    console.log(events);
    var filter = [];
    filter[0] = 'start';
    filter[1] = 'end';
    filter[2] = 'title';
    events = JSON.stringify(events, filter, '\t');
    console.log(events);
    $.ajax({
        type: "POST",
        data: {events: events},
        url: <my_url>,
    });
});

на chrome devtool все в порядке до последнего $ .ajax ()

выдает эту ошибку Не удалось загрузить ресурс: сервер ответил со статусом 403 (ОК)

Если кто-то может понять, что я делаю неправильно, пожалуйста, продолжайте

заранее спасибо

Ответы [ 2 ]

0 голосов
/ 01 апреля 2012

Я нашел другую часть решения о Forbidden 403 относительно csrf

на этой странице документации Django

https://docs.djangoproject.com/en/dev/ref/contrib/csrf/#ajax

0 голосов
/ 01 апреля 2012

data: "events" должно быть data: events.Вашему серверу может не понравиться полезная нагрузка, отличная от json.

Вы также хотите добавить contentType: 'application/json', поскольку хотите публиковать json, а не значения в кодировке формы.Если вы действительно ожидаете закодированные в форме значения на стороне сервера, используйте data: {events: events}, чтобы получить поле данных POST events, содержащее строку JSON.

...