【发布时间】:2020-09-28 21:44:45
【问题描述】:
我有一个必须调用我的 js 函数的按钮,但是当我这样做时没有任何反应(没有获取请求)
我的 HTML:
<button type="button" id="checker" id="button{{answer.id}}" onclick="mark_as_correct({{answer.id}});">
</button>
我的 JS 函数:
function mark_as_correct(qid) {
var csrftoken = getCookie('csrftoken');
$.ajaxSetup({
beforeSend: function(xhr, settings) {
if (!csrfSafeMethod(settings.type) && !this.crossDomain) {
xhr.setRequestHeader("X-CSRFToken", csrftoken);
}
}
});
$.ajax({
url: 'url answerajaxcorrect',
type: 'post',
data: {id: qid},
success: function(data) {
document.getElementById('correct' + qid).innerHTML = "Correct!"
var button = document.getElementById('button' + qid)
button.parentNode.removeChild(button)
},
failure: function(data) {
alert('error')
}
})
}
我确实将我的 js 包含到模板中:
{% load static %}
<script type="text/javascript" src="{% static 'js/main.js' %}"></script>
我的观点是这样的:
@login_required
def correct_ajax(request):
qid = int(request.POST.get("id"))
answer = get_object_or_404(Answer, id=qid)
if answer.author == request.user:
answer.is_correct = True
answer.save()
return JsonResponse({
"is_correct": True,
})
else:
return JsonResponse({
"is_correct": False,
})
我是 js 和 django 的新手,所以我很难理解我的问题的根源,请帮助。
【问题讨论】:
标签: javascript html django ajax onclick