Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/308.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python ¿;为什么我在django中的CORS配置不起作用?_Python_Django_Api_Rest_Heroku - Fatal编程技术网

Python ¿;为什么我在django中的CORS配置不起作用?

Python ¿;为什么我在django中的CORS配置不起作用?,python,django,api,rest,heroku,Python,Django,Api,Rest,Heroku,我在production.py文件中有REST API设置。此REST API上载到Heroku,并使用带有以下配置的django cors头文件: #应用程序定义 已安装的应用程序=[ “django.contrib.admin”, “django.contrib.auth”, “django.contrib.contenttypes”, “django.contrib.sessions”, “django.contrib.messages”, “django.contrib.staticfi

我在production.py文件中有REST API设置。此REST API上载到Heroku,并使用带有以下配置的
django cors头文件

#应用程序定义
已安装的应用程序=[
“django.contrib.admin”,
“django.contrib.auth”,
“django.contrib.contenttypes”,
“django.contrib.sessions”,
“django.contrib.messages”,
“django.contrib.staticfiles”,
#第三方应用程序
“rest_框架”,
“rest_framework.authtoken”,
“护卫舰”,
“gunicorn”,
#本地应用程序
“核心”,
“用户”,
“跳棋”,
]
中间件=[
“corsheaders.middleware.Corsmidlware”,
'django.middleware.security.SecurityMiddleware',
'django.middleware.common.CommonMiddleware',
“django.middleware.csrf.CsrfViewMiddleware”,
“django.contrib.sessions.middleware.SessionMiddleware”,
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.xFrameOptions中间件',
'whitenoise.middleware.WhiteNoiseMiddleware',
]
CORS\u ORIGIN\u ALLOW\u ALL=False
CORS_原产地_白名单=(
“myapi.herokuapp.com”
)

将myapi.herokuapp.com放入CORS_ORIGIN_白名单的目的是查看从
localhost
发出的请求是否被拒绝(这样做是正确的)。但这是可以接受的,这让我明白CORS工作不好。

在获取django rest_api之前,请确保在后端
settings.py
中设置了
django CORS头。有关更多信息,请查看此

pip安装django cors头文件

settings.py:

INSTALLED_APPS = [
    ...
    'corsheaders',
    ...
]

确保已在
settings.py
文件中添加了
cors中间件。
MIDDLEWARE = [  # Or MIDDLEWARE_CLASSES on Django < 1.10
    ...
    'corsheaders.middleware.CorsMiddleware',
    'corsheaders.middleware.CorsPostCsrfMiddleware',
    ...
]

CORS_ORIGIN_ALLOW_ALL = False
CORS_ORIGIN_WHITELIST = (
    'your-server-IP-address'
)
CORS_ALLOW_METHODS = [
    'DELETE',
    'GET',
    'OPTIONS',
    'PATCH',
    'POST',
    'PUT',
]