我只想 我的 front.domain.com 访问django API,所以我更新了 settings.py 。 部署后,我可以通过curl和postman访问django API,所以我很困惑,这里有什么我想念的!!
settings.py
DEBUG = False # deployment
if DEBUG:
FRONT_OFFICE_URL = 'http://127.0.0.1:4200/'
ALLOWED_HOSTS = ['*'] # development
CORS_ORIGIN_ALLOW_ALL = True # development
else:
FRONT_OFFICE_URL = 'https://front.domaine.com'
ALLOWED_HOSTS = [FRONT_OFFICE_URL ] # deployment
CORS_ORIGIN_WHITELIST = [FRONT_OFFICE_URL]
CSRF_TRUSTED_ORIGINS = [FRONT_OFFICE_URL ]
INSTALLED_APPS = [
...
'corsheaders',
]
MIDDLEWARE = [
'corsheaders.middleware.CorsMiddleware',
...
]
答案 0 :(得分:0)
CORS阻止浏览器访问其他域上的资源。但是其他任何http请求都不会被CORS阻止。如果您需要阻止不是Referer
域的请求,可以编写一些中间件来做到这一点,但是要注意,它很容易被伪造-Postman和Curl都可以将Referer
标头设置为任何值。
如果您需要在Django中保护对API的请求的安全,则可以使用setting up CSRF protection。