在Racket Servlet上启用CORS

时间:2018-12-23 22:07:39

标签: http server cors racket

我有一个使用web-server的Racket Web服务器,是否可以启用跨源资源共享(CORS)?

1 个答案:

答案 0 :(得分:1)

是的!

在响应上使用HTTP标头建立CORS策略。如您所知,在Racket Web服务器中,HTTP响应值是answer结构的实例,通常通过更高级别的函数(如response/xexprresponse/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/outputresponse/xexpr等周围做一些包装函数,以添加特定于我的应用程序的逻辑。如果您要提供一堆需要CORS标头的静态文件,则可能需要建立在response模块上。