在發送請求之前,您應手動設置X-CSRFToken
。 Django文檔包含有關很好的例子: https://docs.djangoproject.com/en/1.9/ref/csrf/#ajax
這是關於JQuery的,但你應該把握的想法:
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);
}
}
});
思想如下:服務器發送給您Cookie中的CSRF令牌,你的客戶讀cookies並在標題中設置令牌。服務器讀取請求標頭,看到好的X-CSRFToken
並知道該請求是有效的。
是的。我知道。這就是我所說的。設置X-CSRFToken後,csrf與我在Cookie中看到的不同。 – Rishi
對不起,您沒有告訴您將您的csrf-token設置爲「X-CSRFToken」標頭。只有你從cookies讀取它,這與Ember發送的'X-CSRFToken'值不同。也許我誤解了。 – prokaktus