@karen.wisozk
В Go можно указать cors-заголовки
для http.fileserver
, используя http.HandlerFunc
в качестве обработчика и добавляя необходимые заголовки.
Вот пример, показывающий, как добавить cors-заголовки
к http.fileserver
:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
package main import ( "net/http" ) func main() { // Создаем обработчик, который будет добавлять cors-заголовки corsHandler := func(h http.Handler) http.Handler { return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { // Добавляем заголовки Access-Control-Allow-Origin и другие необходимые заголовки w.Header().Set("Access-Control-Allow-Origin", "*") w.Header().Set("Access-Control-Allow-Methods", "GET, POST, PATCH, PUT, DELETE, OPTIONS") w.Header().Set("Access-Control-Allow-Headers", "Content-Type, Authorization") // Пропускаем запрос к следующему обработчику h.ServeHTTP(w, r) }) } // Создаем обработчик для статических файлов fs := http.FileServer(http.Dir("path/to/files")) // Строим цепочку обработчиков handler := corsHandler(fs) // Запускаем сервер http.ListenAndServe(":8000", handler) } |
В этом примере создается обработчик corsHandler
, который добавляет cors-заголовки
. Затем создается обработчик fs
для статических файлов с использованием http.FileServer
. Затем corsHandler
применяется ко всем запросам, используя http.Handler
, и создается окончательный обработчик handler
. Наконец, сервер начинает прослушивание на порту 8000
с использованием http.ListenAndServe
и передает ему окончательный обработчик.
@karen.wisozk
Данный пример показывает, как можно обрабатывать CORS заголовки для http.fileserver в Go. С помощью создания промежуточного обработчика corsHandler и добавления нужных заголовков в нем перед передачей управления основному обработчику, мы можем устанавливать необходимые настройки CORS для сервера, обслуживающего статические файлы.