http - 在 Racket servlet 上启用 CORS
问题描述
我有一个使用 Racket 的 Web 服务器web-server
,有没有办法启用跨源资源共享 (CORS)?
解决方案
是的!
使用响应上的 HTTP 标头建立 CORS 策略。如您所知,在 Racket Web 服务器中,HTTP 响应值是响应结构的实例,您通常通过更高级别的函数(如response/xexpr
or )来构造它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 标头的静态文件,您可能希望在web-server/dispatchers/dispatch-files模块上构建。
推荐阅读
- android - 试图让一个按钮在一个圆圈中移动 android studio
- c++ - 如何在线程之间传递 IUIAutomationElement
- javascript - 如何动态生成图塔?
- php - php 中错误处理程序的 $errcontext 参数的替代方案
- angular - Angular:防止在单选组中选择单选按钮
- javascript - 在 React 中按顺序处理方法
- java - 带有种子的 Java Random 总是以相同的数字开头
- python - 使用令牌更改文本空间后如何恢复文本空间?
- swift - In App Purchase Non-Consumable - Performance - App Completeness iOS 14.2
- python - 如何在 python matplotlib 中改变饼图的方向?