Да!
Политика CORS устанавливается с использованием заголовков HTTP в ответе.На веб-сервере Racket, как вы знаете, значения ответа HTTP являются экземплярами структуры response , которую вы обычно создаете с помощью функции более высокого уровня, например 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)))
В реальном веб-приложении вы, вероятно, захотите сгенерировать более одного ответа с одинаковыми заголовками.Я обычно делаю некоторые функции-оболочки вокруг response/output
, response/xexpr
и т. Д., Чтобы добавить логику, специфичную для моего приложения.Если вы обслуживаете несколько статических файлов, для которых требуются заголовки CORS, возможно, вы захотите создать модуль web-сервер / dispatchers / dispatch-files .