2014-07-09 4 views
1

Obtention d'un fichier CSRF 403. Les instructions console.log ci-dessous confirment que je saisis le jeton. Je soumets la demande au même domaine sur mon serveur local.Django CSRF 403

internal.csrfToken = $.cookie('csrftoken'); 

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

    $.ajaxSetup({ 
    crossDomain: false, // obviates need for sameOrigin test 
    beforeSend: function(xhr, settings) { 
     console.log("ajaxSetup"); 
     console.log(internal.csrfToken); 
     if (!internal.csrfSafeMethod(settings.type)) { 
     console.log("Settings type"); 
     xhr.setRequestHeader("X-CSRFToken", internal.csrftoken); 
     } 
    } 
    }); 

    external.submitPayment = function (app_id, charge_now_amount, stripe_plan_id) { 
    // Submit a payment to the server and handle any errors. 

    $.ajax({ 
     url: URLS.postPayment, 
     type: 'POST', 
     data: { 
     'app_id': STRIPE_CONFIG.app.id, 
     'amount': charge_now_amount, 
     'stripe_plan_id': stripe_plan_id 
     }, 
     dataType: 'json', 
     success: function(response) { 
     alert("Success!"); 
     }, 
     error: function(jqXHR, textStatus, errorThrown) { 
     alert("Error!"); 
     } 
    }); 

    }; 

Répondre

0

Vous ne savez pas si cela va vous aider. J'avais un problème similaire. Et l'a corrigé en créant des fonctions beforeSend qui ajoutent le X-CSRFToken

$.ajax({ 
    url: url, 
    data: JSON.stringify({'name': value }), 
    type: 'POST', 
    dataType: 'json', 
    beforeSend: function (jqXHR, settings) { 
    jqXHR.setRequestHeader('X-CSRFToken', $('input[name=csrfmiddlewaretoken]').val()); 
    }, 
    success: function(response) { 
    alert("Success!"); 
    } 
}) 
Questions connexes