我有一个使用web-server
的Racket Web服务器,是否可以启用跨源资源共享(CORS)?
答案 0 :(得分:1)
是的!
在响应上使用HTTP标头建立CORS策略。如您所知,在Racket Web服务器中,HTTP响应值是answer结构的实例,通常通过更高级别的函数(如response/xexpr
或response/output
来构造该实例)。正是您要设置的标头取决于您的应用程序,但这是一个简单的示例:
(response/output
#:mime-type #"text/javascript"
#:headers (list (header #"Access-Control-Allow-Origin" #"*"))
(λ (out)
(write-bytes #"console.log('Hi, world!')\n" out)))
在真实的Web应用程序中,您可能希望生成多个具有相同标题的响应。我通常在response/output
,response/xexpr
等周围做一些包装函数,以添加特定于我的应用程序的逻辑。如果您要提供一堆需要CORS标头的静态文件,则可能需要建立在response模块上。