http - 在 Racket servlet 上启用 CORS

标签 http server cors racket

我有一个使用 web-server 的 Racket Web 服务器,有没有办法启用跨源资源共享 (CORS)?

最佳答案

是的!

CORS 策略是使用响应上的 HTTP header 建立的。如您所知,在 Racket Web 服务器中,HTTP 响应值是 response 的实例。 struct,您通常通过诸如 response/xexprresponse/output 之类的高级函数来构造该结构。您想要设置的 header 具体取决于您的应用程序,但这里有一个简单的示例:

(response/output
 #:mime-type #"text/javascript"
 #:headers (list (header #"Access-Control-Allow-Origin" #"*"))
 (λ (out)
   (write-bytes #"console.log('Hi, world!')\n" out)))

在真实的 Web 应用程序中,您可能希望生成多个具有相同 header 的响应。我通常围绕 response/outputresponse/xexpr 等制作一些包装函数,以添加特定于我的应用程序的逻辑。如果您正在提供一堆需要 CORS header 的静态文件,您可能需要在 web-server/dispatchers/dispatch-files 上构建模块。

关于http - 在 Racket servlet 上启用 CORS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53907505/

相关文章:

javascript - 使用 fetch() Webapi

javascript - 将大型 JSON 数据从 C# Web API 发送到 Javascript 客户端

MySQL服务器安装问题

jquery - 飞行前响应中的Access-Control-Allow-Headers不允许请求 header 字段kbn-version

python - 用于 Ajax 请求的 Pyramid CORS

http - Go 的 http.MaxBytesReader,为什么要传入 writer?

php - 如何通过我的 PHP 端点的响应以编程方式发送 URL 变量

ruby - 如何在 Ruby HTTP 请求的 URI 中使用方括号 []

docker - 自定义端口在Docker-compose中不起作用

asp.net - 在Windows身份验证之前拦截HTTP OPTIONS ASP.NET Core 2.0