【发布时间】:2020-06-11 17:52:33
【问题描述】:
应用程序后端 (django) 和前端 (react) 托管在同一应用程序的谷歌云上。 我已经安装了 django-cors-headers 并在 settings.py 中引用了它:
INSTALLED_APPS = (
...
'corsheaders',
...
)
MIDDLEWARE = [
'django.middleware.security.SecurityMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'corsheaders.middleware.CorsMiddleware',
'django.middleware.common.CommonMiddleware',
...
]
CORS_ORIGIN_ALLOW_ALL = True
CORS_ORIGIN_REGEX_WHITELIST = (
'http://localhost:3000',
'https?\://myapp\.appspot\.com\/?',
'https?\://frontend-dot-myapp\.appspot\.com\/?',
)
据我所知,CORS_ORIGIN_ALLOW_ALL 应该已经解决了这个问题,但它没有,我只是有点绝望在那里尝试。 CORS_ORIGIN_WHITELIST 对我来说效果不佳,这就是 CORS_ORIGIN_REGEX_WHITELIST 的原因。
我没有更改此设置中的任何内容,但现在出现了跨域错误。自上次代码更改以来,我安装了 django-silk 来分析应用程序。删除它似乎无法解决问题,所以我不确定它是否相关。
帮助不胜感激!
在 requirements.txt 中:
django-cors-headers==3.2.1
编辑
经过反复试验,我发现在 urls.py 中添加最后两行会导致问题:
urlpatterns = [
path('admin/', admin.site.urls),
path('api/', views.api_root),
path('_ah/warmup/', views.service_status),
path('_ah/start/', views.service_status),
...
但是我不明白为什么会导致 CORS 错误或如何解决它。
【问题讨论】:
-
我不确定,但可能this 是您要找的。span>
-
感谢您的建议!我应该提到我在脚本处理程序中遇到了这个问题,它似乎只适用于静态文件处理程序。尽管如此,我已经尝试过了,但它是一样的。
标签: python django reactjs google-app-engine django-cors-headers