Отправка JSON до Django просмотров с AJAX - PullRequest
0 голосов
/ 05 февраля 2020

Я пытаюсь опубликовать JSON объект со стороны моего клиента Javascript в моем Django View.

Я получаю «500 (Внутренняя ошибка сервера)» при попытке опубликовать. Это связано с токеном CSRF? И как мне обойти это?

Мой AJAX

  $.ajax({
      type: 'POST',
      dataType: 'json',
      url: '/demo/saved/',
      data: {'data': JSON.stringify(finalSelection)},
      success: function() {
         console.log("Success")
      }
    });

views.py

def show(request):
    data = json.loads(request.POST.get('data', ''))
    context = {
        'data': data
    }
    return render(request, 'bill/saved.html', context )

urls.py

urlpatterns = [
    path('bill/', views.bill_view, name = 'bill-view'),
    path('saved/', views.show, name = 'selected-view'),
]

Благодарим за любую помощь!

1 Ответ

0 голосов
/ 05 февраля 2020

Предполагая, что это действительно проблема CSRF, о которой вы упоминали, поскольку вы не опубликовали вывод ошибок 500, вы можете просто добавить токен csrf в data, который отправляется в запросе POST:

$.ajax({
...
    data: {
        'data': JSON.stringify(finalSelection),
        'csrfmiddlewaretoken': '{{ csrf_token }}'
    },
...
});
...