Включение CORS в сервлете Racket - PullRequest
0 голосов
/ 24 декабря 2018

У меня есть веб-сервер Racket, использующий web-server, есть ли способ включить перекрестное совместное использование ресурсов (CORS)?

1 Ответ

0 голосов
/ 03 января 2019

Да!

Политика 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 .

...