Javascript 发送请求时从何处获取值?
请帮忙解决这个问题 html: 问题在于日志中显示以下错误消息: 禁止(CSRF令牌丢失或不正确): /帐户/删除用户配置文件/ 对于表单,我将按如下方式发送令牌:Javascript 发送请求时从何处获取值?,javascript,python,ajax,django,Javascript,Python,Ajax,Django,请帮忙解决这个问题 html: 问题在于日志中显示以下错误消息: 禁止(CSRF令牌丢失或不正确): /帐户/删除用户配置文件/ 对于表单,我将按如下方式发送令牌: $('#commonModalLabel').text('Удалить профиль?'); $('#commonModal .modal-body').html('Возможность восстановить профиль будет доступна в течение двух недель. Для восстан
$('#commonModalLabel').text('Удалить профиль?');
$('#commonModal .modal-body').html('Возможность восстановить профиль будет доступна в течение двух недель. Для восстановления нужно отправить <a href="mailto:prozaik81-2@yandex.ru">администратору</a> ресурса письмо с почтового адреса, который был указан в профиле.');
$('#commonModal').modal('show');
$('#commonModal .but_ok').on('click', function(){
console.log('ok');
$.ajax({
url: "/accounts/delete_profile/",
type: 'POST',
dataType:"json",
data: {},
success: function(data) {
if(data.result == true){
$('#mySmallModalLabel').text('Профиль удалён');
$('#infoModal').modal('show');
}
}
});
});
{% csrf_token %}
但就我而言,没有形式(!)。请告诉我从哪里获取令牌以及如何发送令牌,并将其放入AJAX请求中
beforeSend: function(xhr, settings) {
xhr.setRequestHeader("X-CSRFToken", $.cookie('csrftoken'));
},
有时它在某些浏览器中不起作用(在我的例子中是chrome),因此您可以将这些添加到发送给查看的数据中:
data['csrfmiddlewaretoken'] = $.csrf_token;
$.csrf_令牌
对我来说是一个全局对象,我将令牌直接打印到模板:
<script type="text/javascript">
$.csrf_token = '{{ csrf_token }}';
</script>
$.csrf_token='{{csrf_token}}}';
中解释了您的问题
请注意,如果没有呈现任何表单,django可能不会发送csrf令牌,则必须使用确保\u csrf decoratorJavascript可能不会发送csrf令牌。您可能应该将它添加到
ajax()
调用中的data:{}
属性中。您可以从MataTag获取该值。从何处获取该值?我也不在这里进行formCheck:我以这种方式发送C srf。这里没有描述是为了节省空间
data['csrfmiddlewaretoken'] = $.csrf_token;
<script type="text/javascript">
$.csrf_token = '{{ csrf_token }}';
</script>