Forums

Ajax POST CSRF Token Error

I have a form on my website that submits via AJAX. Running on machine is works fine, however here on pythonanywhere I am getting a CSRF Token Error. It appears that its not being found in the site cookies or being submitted. Here is my code regarding the CSRF token that works locally.

$(function () {
    $.ajaxSetup({
        headers: { "X-CSRFToken": getCookie("csrftoken") }
    });
});

function getCookie(c_name)
{
    if (document.cookie.length > 0)
    {
        c_start = document.cookie.indexOf(c_name + "=");
        if (c_start != -1)
        {
            c_start = c_start + c_name.length + 1;
            c_end = document.cookie.indexOf(";", c_start);
            if (c_end == -1) c_end = document.cookie.length;
            return unescape(document.cookie.substring(c_start,c_end));
    }
}
return "";

Any reasons why this is not working with python anywhere?

Thanks!

I have a similar issue with cart processing for my e-commerce site. Did you ever resolve this?

Which frameworks are you using (eg. Flask/Django/etc)?

Django.

Are you using the version of the getCookie function from the Django docs? Here's a link for 2.0, which differs from the one @formatically posted above. You can find the appropriate version for your version of Django using the links at the bottom right of the page. Also, do you have CSRF_USE_SESSIONS set to False?