无法让CORS在Google Endpoints ESP上运行

时间:2017-07-05 15:35:43

标签: google-cloud-platform google-cloud-endpoints

我正在运行一个K8s群集,通过企业服务代理服务gRPC服务,同时通过HTTPS服务gRPC和REST。

我正在尝试为此端点启用CORS,但我无法使其正常工作。

这是我的端点配置:

Array
(
    [0] => int CurrencyTypeEnum
}

我已更新端点并更新了ESP配置。我已经确认... endpoints: - name: <my-service>.endpoints.<my-project>.cloud.goog target: <ENDPOINT_IP> allow_cors: true 中有一个部分或某些内容包含有关启用CORS的内容。

但是,当我向端点发出OPTIONS请求时,我收到错误消息/etc/nginx.d/service.json

我没有想法。有谁知道如何为我的终端启用CORS?

2 个答案:

答案 0 :(得分:1)

不幸的是,allow_cors表示ESP只会将OPTIONS请求传递给后端。虽然gRPC服务器不支持OPTIONS请求,但它不起作用。有解决方法,请参阅 https://groups.google.com/forum/?utm_medium=email&utm_source=footer#!msg/google-cloud-endpoints/THvCfetfzW8/luyH3tOUBgAJ

答案 1 :(得分:0)

记住要使用--cors_preset = basic在ESP上启用CORS

示例:

    - name: esp
      image: gcr.io/endpoints-release/endpoints-runtime:1
      args: [
        "--http_port=8081",
        "--backend=127.0.0.1:8080",
        "--service=...",
        "--rollout_strategy=managed",
        "--cors_preset=basic",
      ]

请参阅Google文档:https://cloud.google.com/endpoints/docs/openapi/specify-proxy-startup-options#adding_cors_support_to_esp