Мой сценарий:
example.com - это страница django, которую посещает пользователь. сессия устанавливается сервером. Теперь у меня есть приложение внешнего интерфейса в другом домене под названием xyz.com . Теперь мне нужно вызывать API на example.com , поэтому я пытаюсь сделать вызов ajax с withCredentials: true
, но это не похоже на отправку cookie 'sessionId' в запросе.
Я уже видел некоторые ответы о переполнении стека, но предлагаемые ответы не работают. ссылка1 ссылка2 ссылка3
Что я пытался:
Мой бэкэнд написан на Django, поэтому я попытался установить
CORS_ALLOW_CREDENTIALS = True
# Cross Origin Request Settings (CROS)
CORS_ORIGIN_ALLOW_ALL = True
CORS_ALLOW_METHODS = (
'GET',
'POST',
'PUT',
'PATCH',
'DELETE',
'OPTIONS'
)
CORS_ALLOW_HEADERS = (
'x-requested-with',
'content-type',
'accept',
'origin',
'authorization',
'x-csrftoken',
'cache',
'cookie',
)
CORS_ORIGIN_WHITELIST = [
'*'
]
SESSION_COOKIE_HTTPONLY = False
SESSION_COOKIE_DOMAIN = 'example.com'
Я использую ajax для вызова API на example.com
jQuery.ajax({
url: "http://example.com/api/v1/admin/settings/",
dataType: 'json',
xhrFields: { withCredentials: true },
success: function(data) {
console.log(data);
}
});