【问题标题】:gcloud app engine flexible - removing header from microservice pythongcloud app engine 灵活 - 从微服务 python 中删除标头
【发布时间】:2017-01-25 14:29:19
【问题描述】:

我创建了一个微服务 (python),服务于由外部网站提供的 JavaScript 发出的 Web 请求。我需要标题中的属性Access-Control-Allow-Origin,否则浏览器不会从我的微服务中获取输入。

我的问题是 gcloud 灵活的应用程序引擎似乎删除了我的标题。当我从 vm(在 gcloud 中)运行 python 时,我确实得到了标题,但是当我在 gcloud 中将它作为“应用程序”运行时我没有得到它。

我尝试修改app.yaml 以添加access-control-allow-origin : *,但在使用脚本处理程序时不能这样做。

我注入标头的python的一部分:

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

【问题讨论】:

  • 我认为我们没有采取任何措施来删除响应中的标题scratches head。仅供参考 - app.yaml 中的 handlers: 部分在 env:flex 中绝对没有任何作用:)
  • 感谢您的回复。如果你有兴趣,我可以给你python文件,你可以试试。我正在检查浏览器中的标题,当我从 vm(在 gcloud 中)运行 python 时,我确实获得了访问控制,但是当我在 appengine 中运行相同的 python 时,我没有得到它。
  • 我在 chrome 控制台中得到以下信息。如果你往下看,在我到达我的微服务之前会发生重定向。我猜在我的容器前面运行的任何 haproxy/lb 都在更改标题。今天晚些时候我会尝试在我的 appengine 中做一个 tcpdump。
  • XMLHttpRequest 无法加载 sadfsadf.appspot.com/?search=p。从“asdfsadf.appspot.com/?search=p”重定向到“asdfsadf.appspot-preview.com/?search=p”已被 CORS 策略阻止:请求的资源上不存在“Access-Control-Allow-Origin”标头。因此不允许访问 Origin '12.12.12.12'。

标签: python google-app-engine gcloud


【解决方案1】:

由于重定向,这是一个临时问题。我们正在将 flex 用户的所有 appspot.com 域流量重定向到 appspot-preview.com,同时解决我们的请求路径的一些问题。该问题已得到解决,您应该不会看到任何重定向。希望这会有所帮助!

【讨论】:

    猜你喜欢
    • 2017-06-04
    • 1970-01-01
    • 2018-08-29
    • 1970-01-01
    • 2020-11-23
    • 1970-01-01
    • 2016-08-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多