Как получить переданные данные JSON при ошибке Ajax?

Я использую Django и Ajax. В моем представлении у меня есть:

class MainView(View):
    def get(self, request):
        if not request.is_ajax():
            return render(request, "main.html")
        
        # hard coded both options for testing
        return JsonResponse({"data": "xyz"}, status=400) 
        # return JsonResponse({"data": "xyz"}, status=200) 

моя ajax функция выглядит следующим образом:

$("#start_calculation_button").click(function () {
    $.ajax({
        url: "/",
        type: 'get',
        data: {
            ...
        },
        success: function (response) {
            console.log(response.data);
        },
        error: function (response) {
            console.log(response.data);
        }
    })
})

Но работает только функция успеха? В то время как функция ошибки просто возвращает undefined

Есть идеи, почему так происходит? Как я могу это исправить?

Параметры success и error различны, в случае success эти параметры result, status и xhr, тогда как для error параметры xhr, status и error. Таким образом, данные xhr следует разобрать с помощью:

$("#start_calculation_button").click(function () {
    $.ajax({
        // ⋮
        success: function (response) {
            console.log(response.data);
        },
        error: function(xhr) {
            var err = JSON.parse(xhr.responseText);
            console.log(err.data);
        }
    })
})
Вернуться на верх