CSRF 失败:来源检查失败 - http://localhost:8000/ 与任何可信来源不匹配

nOy*_*bek 12 django permissions csrf django-rest-viewsets csrf-token

请帮我解决问题。我正在构建一个由 Django Rest Framework 和 ReactJS 组成的应用程序。我使用了视图集。

我的错误: 错误的屏幕截图

演示

响应数据:

{"detail":"CSRF Failed: Origin checking failed - http://localhost:8000/ does not match any trusted origins."}
Run Code Online (Sandbox Code Playgroud)

ReactApp中的DeleteLead函数

 export const deleteLead = (id) => (dispatch) => {
  axios
    .delete(`/api/leads/${id}/`)
    .then((res) =>
      dispatch({
        type: DELETE_LEAD,
        payload: id,
      })
    )
    .catch((err) => {
      console.log(err);
    });
};
Run Code Online (Sandbox Code Playgroud)

LeadViewSet:从rest_framework导入视图集,权限从.serializsers导入LeadSerializers从leads.models导入Lead

# lead viewset
class LeadViewSet(viewsets.ModelViewSet):
    queryset = Lead.objects.all()
    # permission - bu ruxsat beruvchi
    permission_classes = [
        permissions.AllowAny # barcha uchun ruxsat
    ]
    serializer_class = LeadSerializers
Run Code Online (Sandbox Code Playgroud)

LeadSerzializers:

# lead serializer
class LeadSerializers(serializers.ModelSerializer):
    class Meta:
        model=Lead
        fields="__all__"
Run Code Online (Sandbox Code Playgroud)

引线型号:

class Lead(models.Model):
    name = models.CharField(max_length=50)
    email = models.EmailField(max_length=100, unique=True)
    message = models.TextField(max_length=500, blank=True)
    created_at = models.DateTimeField(auto_now_add=True)

    def __str__(self):
        return self.name
Run Code Online (Sandbox Code Playgroud)

Jai*_*tiz 17

尝试在设置文件中设置您的 CSRF 可信来源、允许的主机,如下所示

CSRF_TRUSTED_ORIGINS = [
    'http://localhost:8000'
],
ALLOWED_HOSTS = [
    'localhost',
],
CORS_ORIGIN_WHITELIST = [
    'http://localhost:8000',
]
Run Code Online (Sandbox Code Playgroud)