Как получить переданные данные 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);
}
})
})