У меня действительно раздражающая проблема с CORS и моей функцией Google Cloud ...
Я получаю сообщение об ошибке:
Доступ к XMLHttpRequest по [ URL-адресу моей функции ] from origin 'http://localhost:4200' заблокировано политикой CORS: Access-Control-Allow-Headers в заголовке запроса не разрешен в ответе перед полетом.
Iveуже пытался обработать его на стороне функции с помощью следующего кода:
if request.method == 'OPTIONS':
headers = {
'Access-Control-Allow-Origin': '*',
'Access-Control-Allow-Methods': 'GET',
'Access-Control-Allow-Headers': 'Content-Type',
'Access-Control-Max-Age': '3600'
}
return ('', 204, headers)
, а затем добавил в основное возвращение с помощью:
headers = {
'Access-Control-Allow-Origin': '*'
}
....
return(json.dumps(data), 200, headers)
это не работает ....
Я также пытался использовать подход заголовков firebase.json, и он тоже не работает ...
даже пытался работать с HttpHeaders в угловом формате, например:
const headers = new HttpHeaders()
.set("Access-Control-Allow-Origin", "*")
.set("Access-Control-Allow-Methods", "POST, GET, OPTIONS")
.set('cache-control', 'no-cache')
также не работает.....
тогда я попытался с прокси (просто чтобы проверить, если это действительно проблема) добавил proxy.config.json и, конечно, в dev это просто работает ...
но проблема в том, что мне нужно иметь возможность загрузить приложение Angular на хостинг Firebaseo как я могу исправить ошибку CORS в бэкэнде?