Вы можете сделать это довольно легко:
@app.route("/")
def home():
resp = flask.Response("Foo bar baz")
resp.headers['Access-Control-Allow-Origin'] = '*'
return resp
Посмотрите на flask.Response и flask.make_response ()
Но что-то говорит мне, что у вас есть другая проблема, потому что after_request
тоже должен был правильно ее обработать.
EDIT Я заметил, что вы уже используете make_response
, что является одним из способов сделать это , Как я уже говорил, after_request
должен был работать. Попробуйте нажать конечную точку через завиток и посмотреть, что представляют собой заголовки:
curl -i http://127.0.0.1:5000/your/endpoint
Вы должны увидеть
> curl -i 'http://127.0.0.1:5000/'
HTTP/1.0 200 OK
Content-Type: text/html; charset=utf-8
Content-Length: 11
Access-Control-Allow-Origin: *
Server: Werkzeug/0.8.3 Python/2.7.5
Date: Tue, 16 Sep 2014 03:47:13 GMT
Отметить заголовок Access-Control-Allow-Origin.
РЕДАКТИРОВАТЬ 2 Как я и предполагал, вы получаете 500, поэтому вы не настраиваете заголовок, как вы думали. Попробуйте добавить app.debug = True
перед запуском приложения и повторите попытку. Вы должны получить некоторый результат, показывая вам основную причину проблемы.
Например:
@app.route("/")
def home():
resp = flask.Response("Foo bar baz")
user.weapon = boomerang
resp.headers['Access-Control-Allow-Origin'] = '*'
return resp
Дает красиво отформатированную страницу ошибок html, причем это внизу (полезно для curl command)
Traceback (most recent call last):
...
File "/private/tmp/min.py", line 8, in home
user.weapon = boomerang
NameError: global name 'boomerang' is not defined
Немного углубившись и обнаружив эту страницу в документации AWS, которая описывает, как значения aws:userid
составлены в SAML / федеративном контексте, я определил следующие работы:
"Condition": {
"StringLike": {
"aws:userid": "AROAROLEID:matt@domain.com"
}
}
Где AROAROLEID
- значение «идентификатора роли» для имени роли, которую вы предполагаете (предположительный_gsuite_ro в моем примере), который согласно этой странице вы можете получить только вызов get-role в AWS CLI (это значение RoleId).