Проблема CORS в django
settings.py
INSTALLED_APPS = [
...
'corsheaders',
]
MIDDLEWARE = [
'django.middleware.security.SecurityMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'corsheaders.middleware.CorsMiddleware',
'django.middleware.common.CommonMiddleware',
...
]
ALLOWED_HOSTS = ['*']
CORS_ORIGIN_ALLOW_ALL = True
ajax запрос
$.ajax({
type: "POST",
url: `https://example.com/requestlink/`,
crossDomain: true,
data: {
link: link,
csrfmiddlewaretoken: csrf,
},
success: function (data) {
if (data) {
data.forEach(src => {
createresult(src);
})
}
icon.classList.replace('loading', 'search');
},
error: function (data) {
icon.classList.replace('loading', 'search');
}
})
Теперь, когда я делаю ajax запрос на пост, я получаю следующее во вкладке консоли
Status 403 Forbidden
Version HTTP/1.1
Transferred 1.53 KB (2.50 KB size)
Referrer Policy no-referrer-when-downgrade
и это в бэкенде
Forbidden (Referer checking failed - https:// anotherexample.com / не соответствует ни одному доверенному источнику): /requestlink/
Почему так?
Попробуйте использовать эти параметры вместо этого :
Заменить :
ALLOWED_HOSTS = ['*']
CORS_ORIGIN_ALLOW_ALL = True
By :
CORS_ORIGIN_ALLOW_ALL = False
CORS_ORIGIN_WHITELIST = (
'http://localhost:8000', # The Django app can request now
)