我是一个业余的开发人员。我尝试跟踪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))
]
1条答案
按热度按时间vq8itlhq1#
“http://localhost:8080”和“http://127.0.0.1:8080”不相同。它们可能指向完全相同的代码和函数,但在这方面它们是不同的。
将两个选项放入列表中:
不过,我不太清楚港口。
找到HERE会提供更多帮助。