gpt4 book ai didi

server - 如何使用 Lacinia Pedestal 设置 COR?

转载 作者:行者123 更新时间:2023-12-03 22:09:39 33 4
gpt4 key购买 nike

我正在使用 Clojure 设置 lacinia-pedestal graphql 服务器,并尝试使用 apollo 使用客户端 javascript 代码访问它。但是,我无法访问本地主机上的/graphql 端点,因为我试图从 COR 不允许的本地主机源 (localhost:3000) 访问它。如何使用 lacinia-pedestal 设置 COR?

这是服务器端代码(使用 lacinia 教程 https://lacinia.readthedocs.io/en/latest/tutorial/component.html 设置)

(ns project.server
(:require [com.stuartsierra.component :as component]
[com.walmartlabs.lacinia.pedestal :as lp]
[io.pedestal.http :as http]))

(defrecord Server [schema-provider server]

component/Lifecycle

(start [this]
(assoc this :server (-> schema-provider
:schema
(lp/service-map {:graphiql true})
http/create-server
http/start)))

(stop [this]
(http/stop server)
(assoc this :server nil)))

(defn new-server
[]
{:server (-> {}
map->Server
(component/using [:schema-provider]))})

客户端代码 super 简单(使用 Apollo):
const client = new ApolloClient({
uri: "http://localhost:8888/graphql"
});

最佳答案

更新:我设法通过将我的 lacinia 基座服务 map 与标准基座服务 map 合并来解决它。

 (start [this]
(assoc this :server (-> schema-provider
:schema
(lp/service-map {:graphiql true})
(merge {::http/allowed-origins (constantly true)})
http/create-server
http/start)))

关于server - 如何使用 Lacinia Pedestal 设置 COR?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55317305/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com