Ошибка Axios при использовании catch для обработки ошибок
Я использую React + Django. Простой бэкенд с одной кнопкой на фронтенде, обрабатывающий POST запросы:
function handleSubmit(e){
e.preventDefault();
axios.post(API_URL, {
forklift, battery
}).then((response) => {
console.log(response)
}).catch((error) => {
console.log(error.response)
});
}
Проблема в том, что когда я пытаюсь отправить форму, включая .catch
, она всегда бросает 404 error
на первый запрос, а затем мой сервер разработки на django падает на второй запрос (останавливается). Когда я удаляю ошибку, она работает отлично.
function handleSubmit(e){
e.preventDefault();
axios.post(API_URL, {
forklift, battery
}).then((response) => {
console.log(response)
});
}
Мой Django API_VIEW
@api_view(['POST'])
def start_charging(request):
if request.method == 'POST':
print('test')
forklift_ean = request.data['forklift']
battery_ean = request.data['battery']
try:
forklift = Forklift.objects.get(for_ean=forklift_ean)
battery = Battery.objects.get(bat_ean=battery_ean)
except Forklift.DoesNotExist or Battery.DoesNotExist:
return Response({'error_message': "No object error"},
status=status.HTTP_404_NOT_FOUND)
return Response({"message": "OK"})
Главный url.py
файл
urlpatterns = [
path('admin/', admin.site.urls),
path('api/', include('my_app.urls'))
]
App url.py
file
urlpatterns = [
path('charging/', views.start_charging, name='start_charging'),
]
Ошибка при первом запросе:
xhr.js:220 POST http://127.0.0.1:8000/api/charging/ 404 (Not Found)
Ошибка на секундном запросе (сервер падает):
xhr.js:220 POST http://127.0.0.1:8000/api/charging/ net::ERR_CONNECTION_REFUSED
Я использую corsheaders
в моем проекте django, и фронтенду разрешено отправлять запросы:
CORS_ALLOWED_ORIGINS = [
'http://localhost:3000',
]
Есть идеи, почему .catch
может вести себя таким образом?