有人知道为什么当我尝试调用Ajax函数时我得到了500个内部错误吗?我试图以两种方式将响应从view.py
发送到Ajax function
:JsonResponse
(参见view.py中的其他内容)和HttpResponse
(参见view.py中的内容)。
我的html表单确实有一个csrf_token,所以我在ajax函数中添加了header,但仍然得到了500个内部错误。数据被保存到数据库中,但响应不发送到ajax函数。
View.py
## Ajax
@login_required
def SubmitModal(request):
if request.method == 'POST':
text = request.POST['Text']
date = request.POST['DatePicker']
time = request.POST['TimePicker']
T = SText()
T.User = request.user
T.Text = text
T.STime = date + ' ' + time
T.save()
return HttpResponse(json.dumps({'success': True}), content_type="application/json")
else:
return JsonResponse({'success': False})
包含ajax的文件
$(document).ready(function () {
// Show the modal window when a button is clicked
$('#open-modal').click(function () {
$('#modal').modal('show');
});
// Close the modal window when a button is clicked
$('.close-modal').click(function () {
$('#modal').modal('hide');
});
// Handle the form submission
$('#modal-form').submit(function (event) {
event.preventDefault(); // Prevent the form from being submitted
var formData = $(this).serialize(); // Get the form data
// Submit the form data to the server using an AJAX request
$.ajax({
type: 'POST',
url: '/submit/',
headers: {'X-CSRFToken': '{{ csrf_token }}'},
data: formData,
dataType: "json",
success: function (response) {
if (response.success) {
$('#success-message').show();
} else {
$('#error-message').show();
}
},
error: function (xhr, status, error) {
console.log(error);
}
});
$(".textarea-input")[0].value = '';
$(".date-input")[0].value = '';
$(".time-input")[0].value = '';
});
});
如果您要在非生产环境中复制此内容,则可以在设置文件中设置DEBUG=True
。然后,当您从浏览器发出呼叫时,响应将包含有关问题的详细信息。您还可以设置ADMINS
变量,以便在遇到异常时向指定的电子邮件发送异常跟踪。
您可以在您正在使用的浏览器的开发工具中查看正在发送和接收的数据。