【问题标题】:Enable CORS on Cloudant local在 Cloudant 本地启用 CORS
【发布时间】:2016-09-13 00:49:46
【问题描述】:

我已经使用 docker 镜像设置了一个 cloudant 本地数据库。

当我尝试使用托管在 localhost:8000 上的 JavaScript 应用程序发送 cloudant 查询时,它给了我一个 CORS 错误。

如何在 Cloudant 本地启用 CORS?我已经尝试了以下

  1. PUT 请求,如https://docs.cloudant.com/cors.html#setting-the-cors-configuration 中所述
  2. 检查了仪表板,但本地实例没有可用的“帐户”选项卡。

【问题讨论】:

  • CORS 配置文件的内容是什么?
  • 当我使用localhost:9991/cloudant-db/_api/v2/admin/config/cors 获取 CORS 配置文件时,我得到以下 JSON。 {“错误”:“未找到”,“原因”:“失踪”}
  • 不应该是localhost:9991/_api/v2/user/config/cors吗?
  • 我也试过了,它给出了 { "error": "not_found", "reason": "Database does not exist."}.
  • 您可能需要 SSL。我也有同样的问题。

标签: javascript docker cors cloudant


【解决方案1】:

与@anirus 的答案相同,但有一种非常 笨拙的方法。如果您按照https://hub.docker.com/r/ibmcom/cloudant-developer/ 的当前说明将容器命名为cloudant-developer

  • 将股票default.ini文件保存到本地:

    docker exec cloudant-developer cat /opt/cloudant/etc/default.ini > default.ini

  • 将其修改为 enable_cors = true 而不是 false

  • [cors] 部分中,添加一行origins = http://localhost:3000。它还应该采用逗号分隔的列表,但您可能一次只在一个应用程序上工作。

  • 通过将-v `pwd`/default.ini:/opt/cloudant/etc/default.ini 添加到docker 的命令行参数列表,在运行容器时将修改后的default.ini 卷挂在原始文件上:

    docker run --privileged --detach --volume cloudant:/srv -v `pwd`/default.ini:/opt/cloudant/etc/default.ini --name cloudant-developer --publish 8080:80 --hostname cloudant.dev ibmcom/cloudant-developer

【讨论】:

    【解决方案2】:

    这可以使用自定义 Dockerfile 来完成,该文件在数据库启动之前编辑 Cloudant 设置文件。我用过这个-

    FROM ibmcom/cloudant-developer:latest
    
    RUN \
      sed -i 's/enable_cors = false/enable_cors = true/g' /opt/cloudant/etc/default.ini && \
      sed -i 's/\[cors\]/\[cors\]\norigins=*/g' /opt/cloudant/etc/default.ini && \
      sed -i 's/credentials = false/credentials = true/g' /opt/cloudant/etc/default.ini
    

    它将启用带有origins=* 的 cors,并接受来自 CORS 连接的凭据。

    您可以将其放入Dockerfile,然后是docker builddocker run

    【讨论】:

      【解决方案3】:

      到目前为止,我的所有调查都表明本地 Cloudant 不支持此功能。

      【讨论】:

        猜你喜欢
        • 2020-10-18
        • 2019-04-18
        • 1970-01-01
        • 2022-10-05
        • 2017-11-24
        • 1970-01-01
        • 2014-03-04
        • 2023-04-09
        • 1970-01-01
        相关资源
        最近更新 更多