404 错误请求反应 axios
404 bad request react axios
当我在 React 中发出 post 请求时,我似乎无法弄清楚错误 error 404 not found
。这是我发出 post 请求的反应代码。我在后端使用 Django restframork 并在前端使用 axios,我遇到 post 请求错误。这是我使用的代码的详细信息。
const handleUploadFile = (e) => {
let myfile = file;
let formData = new FormData();
formData.append('file', myfile);
formData.append('client', company_name);
formData.append('business_process', business);
http({
url: 'http://127.0.0.1:8000/api/business_process/upload-business-impact-excel-by-superuser',
method: 'POST',
mode: 'cors',
data: formData,
}).then(
(response) => {
alert('File uploaded Sesscessfully');
},
(err) => {
console.log(err);
}
);
};
Django views.py
用于发出 api 请求的视图
class UploadBusinessImpactExcelBySuperUSer(APIView, ExcelHandlingView):
permission_classes = (
IsAuthenticated,
permissions.IsCybermindAdmin,
)
def post(self, request):
self.can_model_handle_ExcelHandlingView(models.BusinessImpact)
serializer = serializers.ExcelUploaderWithClient(data=request.data)
if serializer.is_valid():
data = serializer.validated_data
file = data.get("file")
client = data.get("client")
business_process_id = data.get("business_process")
try:
business_process = get_business_process_by_client(
client, business_process_id
)
except (
models.BusinessProcess.DoesNotExist,
accountModels.Client.DoesNotExist,
) as e:
return Response(
"business process or client does not exist",
status=status.HTTP_404_NOT_FOUND,
)
if (
file.content_type
== "application/vnd.openxmlformats-IsClientAdminofficedocument.spreadsheetml.sheet"
):
self.delete_every_record_that_match_criteria(
models.BusinessImpact,
{"client": client, "business_process": business_process},
)
excel_file = pd.read_excel(file)
data = pd.DataFrame(
excel_file,
columns=self.get_excel_fields(
models.BusinessImpact.excel_titles),
)
for _, row in data.iterrows():
self.create_model_object(
models.BusinessImpact,
row,
{"client": client, "business_process": business_process.id},
)
return Response("Successfully Loaded data from excel.")
else:
return Response(
{"file": ["File type must be excel with .xlxs extension."]},
status=status.HTTP_400_BAD_REQUEST,
)
return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
business_process/urls.py
urlpatterns = [
path(
"upload-business-impact-excel-by-superuser",
views.UploadBusinessImpactExcelBySuperUSer.as_view(),
),
]
urls.py
主要网址代码
urlpatterns = [
path("admin/", admin.site.urls),
path("api/business_process/", include("business_process.urls")),
]
admin.site.site_header = settings.ADMIN_SITE_HEADER
这里是请求响应
network request response
我该如何解决这个问题?
我在 views.py
上犯了一个错误。这是更正后的代码,非常有用。
class UploadBusinessImpactExcelBySuperUSer(APIView, ExcelHandlingView):
permission_classes = (
IsAuthenticated,
permissions.IsCybermindAdmin,
)
def post(self, request):
self.can_model_handle_ExcelHandlingView(models.BusinessImpact)
serializer = serializers.ExcelUploaderWithClient(
data=request.data)
if serializer.is_valid():
data = serializer.validated_data
file = data.get("file")
client = data.get("client")
business_process_id = data.get("business_process")
try:
business_process = get_business_process_by_client(
client, business_process_id
)
except (
models.BusinessProcess.DoesNotExist,
accountModels.Client.DoesNotExist,
) as e:
return Response(
"business process or client does not exist",
status=status.HTTP_404_NOT_FOUND,
)
if (
file.content_type
== "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"
):
# self.delete_every_recore_on_that_model(models.BusinessImpact)
self.delete_every_record_that_match_criteria(
models.BusinessImpact,
{"client": client, "business_process": business_process},
)
excel_file = pd.read_excel(file)
data = pd.DataFrame(
excel_file,
columns=self.get_excel_fields(
models.BusinessImpact.excel_titles),
)
for _, row in data.iterrows():
self.create_model_object(
models.BusinessImpact,
row,
{"client": client, "business_process": business_process.id},
)
return Response("Successfully Loaded data from excel.")
else:
return Response(
{"file": ["File type must be excel with .xlxs extension."]},
status=status.HTTP_400_BAD_REQUEST,
)
return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
当我在 React 中发出 post 请求时,我似乎无法弄清楚错误 error 404 not found
。这是我发出 post 请求的反应代码。我在后端使用 Django restframork 并在前端使用 axios,我遇到 post 请求错误。这是我使用的代码的详细信息。
const handleUploadFile = (e) => {
let myfile = file;
let formData = new FormData();
formData.append('file', myfile);
formData.append('client', company_name);
formData.append('business_process', business);
http({
url: 'http://127.0.0.1:8000/api/business_process/upload-business-impact-excel-by-superuser',
method: 'POST',
mode: 'cors',
data: formData,
}).then(
(response) => {
alert('File uploaded Sesscessfully');
},
(err) => {
console.log(err);
}
);
};
Django views.py
用于发出 api 请求的视图
class UploadBusinessImpactExcelBySuperUSer(APIView, ExcelHandlingView):
permission_classes = (
IsAuthenticated,
permissions.IsCybermindAdmin,
)
def post(self, request):
self.can_model_handle_ExcelHandlingView(models.BusinessImpact)
serializer = serializers.ExcelUploaderWithClient(data=request.data)
if serializer.is_valid():
data = serializer.validated_data
file = data.get("file")
client = data.get("client")
business_process_id = data.get("business_process")
try:
business_process = get_business_process_by_client(
client, business_process_id
)
except (
models.BusinessProcess.DoesNotExist,
accountModels.Client.DoesNotExist,
) as e:
return Response(
"business process or client does not exist",
status=status.HTTP_404_NOT_FOUND,
)
if (
file.content_type
== "application/vnd.openxmlformats-IsClientAdminofficedocument.spreadsheetml.sheet"
):
self.delete_every_record_that_match_criteria(
models.BusinessImpact,
{"client": client, "business_process": business_process},
)
excel_file = pd.read_excel(file)
data = pd.DataFrame(
excel_file,
columns=self.get_excel_fields(
models.BusinessImpact.excel_titles),
)
for _, row in data.iterrows():
self.create_model_object(
models.BusinessImpact,
row,
{"client": client, "business_process": business_process.id},
)
return Response("Successfully Loaded data from excel.")
else:
return Response(
{"file": ["File type must be excel with .xlxs extension."]},
status=status.HTTP_400_BAD_REQUEST,
)
return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
business_process/urls.py
urlpatterns = [
path(
"upload-business-impact-excel-by-superuser",
views.UploadBusinessImpactExcelBySuperUSer.as_view(),
),
]
urls.py
主要网址代码
urlpatterns = [
path("admin/", admin.site.urls),
path("api/business_process/", include("business_process.urls")),
]
admin.site.site_header = settings.ADMIN_SITE_HEADER
这里是请求响应 network request response
我该如何解决这个问题?
我在 views.py
上犯了一个错误。这是更正后的代码,非常有用。
class UploadBusinessImpactExcelBySuperUSer(APIView, ExcelHandlingView):
permission_classes = (
IsAuthenticated,
permissions.IsCybermindAdmin,
)
def post(self, request):
self.can_model_handle_ExcelHandlingView(models.BusinessImpact)
serializer = serializers.ExcelUploaderWithClient(
data=request.data)
if serializer.is_valid():
data = serializer.validated_data
file = data.get("file")
client = data.get("client")
business_process_id = data.get("business_process")
try:
business_process = get_business_process_by_client(
client, business_process_id
)
except (
models.BusinessProcess.DoesNotExist,
accountModels.Client.DoesNotExist,
) as e:
return Response(
"business process or client does not exist",
status=status.HTTP_404_NOT_FOUND,
)
if (
file.content_type
== "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"
):
# self.delete_every_recore_on_that_model(models.BusinessImpact)
self.delete_every_record_that_match_criteria(
models.BusinessImpact,
{"client": client, "business_process": business_process},
)
excel_file = pd.read_excel(file)
data = pd.DataFrame(
excel_file,
columns=self.get_excel_fields(
models.BusinessImpact.excel_titles),
)
for _, row in data.iterrows():
self.create_model_object(
models.BusinessImpact,
row,
{"client": client, "business_process": business_process.id},
)
return Response("Successfully Loaded data from excel.")
else:
return Response(
{"file": ["File type must be excel with .xlxs extension."]},
status=status.HTTP_400_BAD_REQUEST,
)
return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)