Django的最新版本要求csrf_token与每个POST请求一起发送(无论是通过AJAX还是通过普通请求)。
他们建议,Django现在将接受自定义HTTP标头X-CSRFTOKEN中的CSRF令牌,以及表单提交本身,以便与流行的JavaScript工具包一起使用,该工具包允许在所有AJAX请求中插入自定义标头。
他们在jQuery中给出了一个这样做的例子
$.ajaxSetup({
beforeSend: function(xhr, settings) {
if (!(/^http:.*/.test(settings.url) || /^https:.*/.test(settings.url))) {
// Only send the token to relative URLs i.e. locally.
xhr.setRequestHeader("X-CSRFToken",
$("#csrfmiddlewaretoken").val());
}
}
});
I am not able to figure out how to do something similar in DOJO toolkit. I have been using dojo.rpc.JsonService() for a while.
请提出一种在DOJO中做类似事情的方法?
或者唯一的选择是分别对每个xhrPost请求执行此操作?