Триггерная функция Python на Django + React
Я пытаюсь отправить данные из моего React frontend в Django backend и запустить функцию. Я разрабатываю Django REST API с использованием Django Rest Framework, и я настроил представление в приложении "Калькулятор" для обработки POST-запросов. Задача представления калькулятора - просто конкатенировать текст из фронтенда:
#app/calculator/views.py
from django.http import JsonResponse
def concat_text(request):
if request.method == 'POST':
received_text = request.POST.get('text', '')
result = received_text + ' =)'
print(result)
return JsonResponse({'result': result})
else:
return JsonResponse({'error': 'Only POST requests are allowed'})
Однако, когда я делаю запрос с фронтенда React, я получаю ошибку 403 (Forbidden). Я отправляю текстовое значение через фронтенд следующим образом:
const handleButtonClick = async (e) => {
e.preventDefault();
try {
const response = await fetch(`${URL}/calculator/calculator/`, {
method: 'POST',
headers: {
'Content-Type': 'application/json',
},
body: JSON.stringify({ text }),
});
URL - это просто "http://localhost:8000". Я также определил урлы калькулятора:
#app/calculator/urls.py
from django.urls import path
from .views import concat_text
urlpatterns = [
path('calculator/', concat_text),
]
Урлы моих приложений:
#app/urls.py
from django.contrib import admin
from django.urls import path, include
from django.conf.urls.static import static
from django.conf import settings
from drf_spectacular.views import SpectacularAPIView, SpectacularSwaggerView
from core import views as core_views
urlpatterns = [
path('admin/', admin.site.urls),
path('health-check/', core_views.health_check, name='health-check'),
path('schema/', SpectacularAPIView.as_view(), name='api-schema'),
path(
'',
SpectacularSwaggerView.as_view(url_name='api-schema'),
name='api-docs',
),
path('user/', include('user.urls')),
path('wallet/', include('wallet.urls')),
path('simulation/', include('simulation.urls')),
path('calculator/', include('calculator.urls')),
]
Ошибка указывает на проблему CSRF
Forbidden (CSRF cookie not set.): /calculator/calculator/