Возможный сценарий -
При использовании браузера он добавляет withCredentials: true
в ваши запросы, если этого требует сервер. Но когда дело доходит до Angular или React, вы должны явно указать withCredentials: true
в своем httpOptions
.
. Я бы порекомендовал вам использовать Falcon или Flask. Следующая процедура может быть полезна, если вы просто используете Falcon под gunicorn или официанткой -
Get falcon-cors
from falcon_cors import CORS
Есть некоторые методы из белого списка,
# Methods supported by falcon 2.0.0
# 'CONNECT', 'DELETE', 'GET', 'HEAD', 'OPTIONS', 'PATCH', 'POST', 'PUT', 'TRACE'
whitelisted_methods = [
"GET",
"PUT",
"POST",
"PATCH",
"OPTIONS" # this is required for preflight request
]
Узнайте больше о предварительном запросе .
Найдите класс поиска следующим образом
class Search:
def on_get(self, req, resp):
response_obj = {
"status": "success"
}
resp.media = response_obj
Имеют некоторые происхождения в белом списке .
whitelisted_origins = [
"http://localhost:4200",
"https://<your-site>.com"
]
Добавьте Cors в ваше промежуточное ПО
cors = CORS(
# allow_all_origins=False,
allow_origins_list=whitelisted_origins,
# allow_origins_regex=None,
# allow_credentials_all_origins=True,
# allow_credentials_origins_list=whitelisted_origins,
# allow_credentials_origins_regex=None,
allow_all_headers=True,
# allow_headers_list=[],
# allow_headers_regex=None,
# expose_headers_list=[],
# allow_all_methods=True,
allow_methods_list=whitelisted_methods
)
api = falcon.API(middleware=[
cors.middleware,
# AuthMiddleware()
# MultipartMiddleware(),
])
Теперь вы можете добавить маршрут к вашему классу.
from src.search import SearchResource
api.add_route('/search', SearchResource())
Для справки, если во входящем запросе withCredentials: true
, убедитесь, что вы не пропустили allow_credentials_origins_list
, установленный в whitelisted_origins
в cors
выше.
ИЛИ
Если вы хотите разрешить учетные данные, тогда вы не должны устанавливать allow_all_origins
в True
. Вам нужно будет указать точный протокол + домен + порт в allow_credentials_origins_list
.