Я создал микросервис (python), обслуживающий веб-запросы, сделанные из JavaScript, обслуживаемых внешним веб-сайтом. Мне нужен атрибут Access-Control-Allow-Origin
в заголовке, иначе браузер не будет принимать данные от моего микросервиса.gcloud app engine flexible - удаление заголовка из микросервиса python
Моя проблема заключается в том, что гибкий механизм приложения gcloud, похоже, удаляет мой заголовок. Я получаю заголовок, когда запускаю python из vm (в gcloud), но я не получаю его, когда запускаю его как «приложение» в gcloud.
Я пробовал модифицировать app.yaml
, чтобы добавить access-control-allow-origin : *
, но вы не можете сделать это при использовании обработчика сценария.
Часть моей питона, где я впрыснуть заголовок:
response_headers = [('Content-type','json/application; charset=utf-8'),('Access-Control-Allow-Origin','*')]
start_response(status,response_headers)
Мои app.yaml
:
entrypoint: python autocomp.py
env: flex
runtime: python
handlers:
- url: /.*
script: autocomp.py
Я не думаю, что мы делаем что-нибудь, чтобы удалить этот заголовок по ответам * царапины на голове *. Просто FYI - обработчики: раздел в app.yaml ничего не делает в 'env: flex' :) –
спасибо за ответ. Если вас это интересует, я могу предоставить вам файл python, и вы можете попробовать на своем конце. Я проверяю заголовок в своем браузере, и я получаю контроль доступа, когда запускаю python из vm (в gcloud), но я не получаю его, когда запускаю тот же самый питон в appengine. –
Я получаю следующее в хром-консоли. Если вы посмотрите ниже, происходит перенаправление, прежде чем я доберусь до микросервиса. Я предполагаю, что любой haproxy/lb работает перед моим контейнером, меняет заголовок. Сегодня я попытаюсь сделать tcpdump в своем приложении. –