为了账号安全,请及时绑定邮箱和手机立即绑定

Django 和 React:错误消息“您需要启用 JavaScript 才能运行此应用程序。”

Django 和 React:错误消息“您需要启用 JavaScript 才能运行此应用程序。”

摇曳的蔷薇 2023-06-09 15:04:09
我是 React 的新手,我尝试让 Django Rest 和 React 一起工作。顺便说一句,我的 javascript 已启用。我有一个简单的看法:class StudentView(generics.ListCreateAPIView):    queryset = Student.objects.all()    serializer_class = StudentSerializer我尝试从反应中获取它:  useEffect(() =>{    fetch("http://127.0.0.1:8000/secretariat/get_student/", {      method: 'GET',      headers: {        'Content-Type': 'application/json',      }    })    .then( resp => resp.json())    .then( resp => setStudents(resp))    .catch(error => console.log(error))      }, [])当我检查浏览器网络时,我得到的响应是:我不认为我有 CORS 标头问题,但这是我的 CORS 设置。INSTALLED_APPS = [    'django.contrib.admin',    'django.contrib.auth',    'django.contrib.contenttypes',    'django.contrib.sessions',    'django.contrib.messages',    'django.contrib.staticfiles',    'django.contrib.sites',    'corsheaders',    'common_app',    'rest_framework',    'rest_framework.authtoken',    'allauth.account',    'rest_auth.registration',    'ldap',    'rest_auth',    'simple_history',]MIDDLEWARE = [    'django.middleware.security.SecurityMiddleware',    'django.contrib.sessions.middleware.SessionMiddleware',    'corsheaders.middleware.CorsMiddleware',    'django.middleware.common.CommonMiddleware',    'django.middleware.csrf.CsrfViewMiddleware',    'django.contrib.auth.middleware.AuthenticationMiddleware',    'django.contrib.messages.middleware.MessageMiddleware',    'django.middleware.clickjacking.XFrameOptionsMiddleware',    'simple_history.middleware.HistoryRequestMiddleware',]CORS_ORIGIN_ALLOW_ALL = FalseCORS_ORIGIN_WHITELIST = (    'http://127.0.0.1')CORS_ALLOW_METHODS = (    'DELETE',    'GET',    'OPTIONS',    'PATCH',    'POST',    'PUT',)CORS_ALLOW_HEADERS = (    'accept',    'accept-encoding',    'authorization',    'content-type',    'dnt',    'origin',    'user-agent',    'x-csrftoken',    'x-requested-with',)我假设我做错了什么,但我不知道。
查看完整描述

1 回答

?
aluckdog

TA贡献1847条经验 获得超7个赞

好吧,我真的不知道为什么,但我让它与 Axios 一起工作,而根本没有改变我的 CORS 设置。如果有人知道为什么它使用 axios 而不是使用 fetch,我想知道。


因此,如果这里发生在其他人身上,则工作代码会使用 axios 作出反应:


  axios.get("http://127.0.0.1:8000/secretariat/get_student/")

    .then(response => {

      console.log(response)

      })

    .catch(error => {

      console.log(error);

    })


查看完整回答
反对 回复 2023-06-09
  • 1 回答
  • 0 关注
  • 101 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信