Я получаю ошибку 500 при отправке вызова AJAX. Мне было интересно, если вы могли бы помочь мне понять, почему.
Обратите внимание, что csrf_token добавляется к данным в отдельном javascript (с использованием кода в разделе «AJAX» на этой странице: https://docs.djangoproject.com/en/dev/ref/csrf/#ajax). Насколько я понимаю, если есть проблема с csrf_token, Ошибка 403.
Template
<form class="userorder" method='POST' action='.' data-url='{{ request.build_absolute_uri|safe }}'>
{{ form.non_field_errors }}
{% csrf_token %}
{{ form.couponcode.errors }}
<div class="coupon_message"></div>
<div id="couponcodevalue">{{form.couponcode}}</div>
<div id="couponcodeapply">Apply</div>
<button type="submit">Submit</button>
</form>
Javascript
<script>
$("#couponcodeapply").click(function(){
var coupon = $("#id_couponcode").val()
var data = {coupon: coupon,}
$.ajax({
type: "POST",
url: "/getcoupon/",
data: data,
success: function(data) {
$("#coupon-message").text("Coupon Added")
},
error: function(response, error) {
$("#coupon-message").text("Coupon Not Added")
}
})
});
</script>
views.py
def getcoupon(request):
print("I am in getcoupon")
if request.is_ajax():
message = "hi"
data = {
'message': message,
}
return JsonResponse(data)
Ошибка в консоли (Chrome)
jquery.min.js:4 POST http://localhost:8000/getcoupon/ 500 (Internal Server Error)
send @ jquery.min.js:4
ajax @ jquery.min.js:4
(anonymous) @ (index):1636
dispatch @ jquery.min.js:3
r.handle @ jquery.min.js:3
Есть ли способ получить дополнительную информацию о том, почему этот код 500 выбрасывается?
Спасибо!