Получение ошибки CORS во фронтенде с бэкендом Django
Из моего фронтенда http://127.0.0.1:5500/index.html я вызываю Django REST POST API http://127.0.0.1:8000/api. Я установил django-cors-headers и мои фронтенд image_upload.js, бэкенд settings.py, и views.py, уровень проекта urls.py и уровень приложения urls.py следующие, API работает в postman, но я получаю CORS ошибку в консоли chromes,
Chrome console
Django console
image_upload.js
const image_input = document.querySelector("#image_input");
const display_image = document.querySelector("#display-image");
image_input.addEventListener("change", (event) => {
console.log(event.target.files[0]);
// console.log(URL.createObjectURL(event.target.files[0]));
display_image.src = URL.createObjectURL(event.target.files[0]);
const url = "http://127.0.0.1:8000/api";
const data = event.target.files[0];
axios
.post(url, JSON.stringify(data), {
method: "POST",
headers: {
"Content-Type": "application/json",
"Access-Control-Allow-Origin": "*",
},
})
.then(function (response) {
console.log(response);
})
.catch(function (error) {
console.log(error);
});
});
settings.py
views.py
from email import message
from tkinter import image_names
from django.shortcuts import render
from django.http.response import JsonResponse
from rest_framework.parsers import JSONParser
from rest_framework import status
from rest_framework.decorators import api_view
from tensorflow.keras.models import load_model
import urllib.request
# Create your views here.
@api_view(['GET', 'POST'])
def PostRequests(request):
print(request.body)
# ing_url = ''
# img_name = "tumor_image.jpg"
# img = urllib.request.urlretrieve(img_url,img_name)
# print(img)
# loaded_model = load_model("vgg16_model_with_90_acc.h5")
return JsonResponse({'message': "It Worked!"}, safe=False)
Уровень проекта urls.py
from django.contrib import admin
from django.urls import path, include
urlpatterns = [
path('admin/', admin.site.urls),
path('api/', include('apis.urls')),
]
Уровень приложения urls.py
from django.urls import path
from apis import views
urlpatterns = [
path('', views.PostRequests),
]
в вашем файле settings.py вы должны преобразовать это
CORS_ORIGIN_WHITELIST = [
'http://127.0.0.1:5500'
]
к этому :
CORS_ALLOWED_ORIGINS=[
"http://127.0.0.1:5500"
]
Измените CORS_ORIGIN_ALLOW_ALL: True на CORS_ALLOW_ALL_ORIGINS=True. Это может быть одной из проблем.

