Django Rest Framework - 在生产模式下删除 API CORS 错误OVH 网络云

问题描述

我知道这是一个经典问题,但我没有找到适合我的特定情况的解决方案。 所有 API 都可以正常工作,而 DELETE API 因 CORS 错误而失败。这仅发生在生产环境(OVH 网络云)中 这是我的python后端代码

class UserDetail(APIView):

permission_classes = (IsAuthenticated,)

def get_object(self,pk):
    try:
        return User.objects.get(pk=pk)
    except User.DoesNotExist:
        raise Http404


def get(self,request,pk,format=None):
    userSet = User.objects.filter(id=pk)
    serializer = UserSerializer(userSet,many=True)
    return Response(serializer.data)

def post(self,format=None):
    userSet = self.get_object(pk)
    serializer = UserUpdateSerializer(userSet,data=request.data)
    if serializer.is_valid():
        serializer.save()
        return Response(serializer.data)
    return Response(serializer.errors,status=status.HTTP_400_BAD_REQUEST)
    
def delete(self,format=None):
    user = self.get_object(pk)
    user.delete()
    return Response({'deleted user': pk},status=status.HTTP_204_NO_CONTENT)

这是放在 django 根文件夹中的 .htaccess 文件

enter image description here

如果需要,我还会分享浏览器显示的响应标头内容

enter image description here

错误信息:

从源“https://xxx.yyyy.com”访问“https://api.xxxx.com/api/v1/users/11”的 XMLHttpRequest 已被 CORS 政策阻止:无“访问”请求的资源上存在 Control-Allow-Origin' 标头。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)