这是我的提交按钮以及ajax请求的代码
<button type="submit" onclick="fn()" />
<script>
function fn()
{
$.ajax({
url: '/',
type: 'POST',
data: { code: 'code'},
success: function(response) {
result = JSON.parse(response);
if (result.error) {
alert(result.error_text);
} else { // Success
$('#output').show();
document.getElementById('output-ans').innerHTML=result;
print 'yes';
}
}
}
});
}
</script>
在我的django视图中,我写了
if request.is_ajax():
do_something()
但这似乎不起作用。请求类型是POST
而不是ajax。正确接收数据,但由于这个原因,我无法修改早期的模板。
请提出一些解决此问题的方法
答案 0 :(得分:0)
通过AJAX使用POST
时,您需要传递CSRF令牌。如果不这样做,您将获得HTTP 403
(禁止):
function fn() {
$.ajax({
url: "/",
type: "POST",
data: {
"csrfmiddlewaretoken": "{{ csrf_token }}",
"code": "code"
},
success: function(response) {
result = JSON.parse(response);
if (result.error) {
alert(result.error_text);
} else { // Success
$('#output').show();
document.getElementById('output-ans').innerHTML=result;
print 'yes';
}
}
});
}
这可能是您的代码未达到此部分的原因:
if request.is_ajax():
do_something()
检查您的控制台日志