【发布时间】:2011-08-30 08:14:44
【问题描述】:
最近发布的 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());
}
}
});
我无法弄清楚如何在 DOJO 工具包中做类似的事情。 我一直在使用 dojo.rpc.JsonService() 一段时间。
请建议一种在 DOJO 中做类似事情的方法?
或者唯一的选择是分别对每个 xhrPost 请求执行此操作?
【问题讨论】: