500 Внутренняя ошибка сервера при передаче Ajax - PullRequest
0 голосов
/ 04 января 2019

Я получаю ошибку 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 выбрасывается?

Спасибо!

1 Ответ

0 голосов
/ 04 января 2019

Мне не удалось импортировать Jsonresponse в представление!

из django.http import JsonResponse

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...