django 即使我正确设置了www.example.com,也会出现“访问控制允许来源”问题settings.py?

jaql4c8m  于 2023-01-14  发布在  Go
关注(0)|答案(1)|浏览(143)

我是一个业余的开发人员。我尝试跟踪this tutorial,在www.example.com上我有settings.py I have

CORS_ALLOWED_ORIGINS = ['http://localhost:8080']

就像视频里那样。
但是,当我尝试从前端访问服务器时,我收到错误消息
CORS策略已阻止从源"http://localhost:8080"访问位于"http://127.0.0.1:8000/engine"的XMLHttpRequest:请求的资源上不存在"Access-Control-Allow-Origin"标头。
感谢在SO上有很多类似的帖子,但是我不明白为什么我会有这个问题,而制作这个教程的人却没有。

    • 型号. py**
from django.db import models
from django.utils import timezone
import datetime

class Engine(models.Model):
    date = models.DateField(default=datetime.datetime(2024,1,1))
    • 序列化程序. py**
from rest_framework import serializers

from .models import Engine

class EngineSerializer(serializers.HyperlinkedModelSerializer):
    class Meta:
        model = Engine
        fields = ('id', 'date')
    • 查看次数. py**
from django.shortcuts import render

from .models import Engine
from .serializers import EngineSerializer

from rest_framework import viewsets
from rest_framework.authentication import BasicAuthentication
from rest_framework.permissions import IsAuthenticated

class EngineViewSet(viewsets.ModelViewSet):
    authentication_classes = (BasicAuthentication,)
    permission_classes = (IsAuthenticated,)
    queryset = Engine.objects.all()
    serializer_class = EngineSerializer
    • 网址. py**
from django.contrib import admin
from django.urls import path, include

from backend_app.views import EngineViewSet

from rest_framework import routers

router = routers.DefaultRouter()
router.register('engine', EngineViewSet)

urlpatterns = [
    path('admin/', admin.site.urls),
    path('', include(router.urls))
]
vq8itlhq

vq8itlhq1#

“http://localhost:8080”和“http://127.0.0.1:8080”不相同。它们可能指向完全相同的代码和函数,但在这方面它们是不同的。
将两个选项放入列表中:

CORS_ALLOWED_ORIGINS = ['http://localhost:8080', 'http://127.0.0.1:8000']

不过,我不太清楚港口。
找到HERE会提供更多帮助。

相关问题