我的html中有一个列表,其中包含一个ajax请求,用于将数据测量值传递给views.py:
<ul>
<li><a class="measure" href="#" data-measure="m_0001">Measure_0001</a></li>
<li><a class="measure" href="#" data-measure="m_0002">Measure_0002</a></li>
<li><a class="measure" href="#" data-measure="m_0003">Measure_0003</a></li>
</ul>
JavaScript
$(".measure").click(function(){
var measure = {'measure': this.getAttribute("data-measure")};
$.ajax({
url : "prueba/", // the endpoint
type : "POST", // http method
data : measure,
success : function (data) {
//Success
}
});
在此文件中 views.py 我想获取用于查询数据库的值。
def prueba(request):
response_data = '{}'
if request.user.is_authenticated:
if request.method == 'POST':
measure = request.POST.get('measure', None)
//request to database
return JsonResponse(response_data, safe=False)
else:
response_data = '{"nothing to see": "this is not happening"}'
return JsonResponse(response_data, safe=False)
当我单击列表中的项目时,出现此错误:
“ 禁止(CSRF令牌丢失或不正确。)”
我不知道我必须将csrf_token放在哪里才能使其工作。
有什么建议吗?
答案 0 :(得分:0)
在c
标记内添加一个隐藏的输入元素,其值为var firstNonRepeatedCharacter = function(string) {
var count = {};
for (var i = 0; i < string.length; i++) {
var letter = string[i];
if (!count[letter]) {
count[letter] = 1;
} else {
count[letter]++;
}
}
for (var letter in count) {
if (count[letter] === 1) {
return letter;
}
}
return null;
}
var someString = 'aabcbd';
console.log(firstNonRepeatedCharacter(someString));
,如下所示:
ul
,然后在您的jQuery中执行以下操作:
{{ csrf_token }}