@ottilie.farrell
Для исправления ошибки CORS (Cross-Origin Resource Sharing) в Golang, вы можете использовать стандартный пакет "net/http"
. Вот пример кода, который включает заголовки CORS для всех запросов:
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 |
package main import ( "net/http" ) func main() { mux := http.NewServeMux() mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { // Добавляем заголовки CORS w.Header().Set("Access-Control-Allow-Origin", "*") w.Header().Set("Access-Control-Allow-Methods", "GET, POST, PUT, DELETE") w.Header().Set("Access-Control-Allow-Headers", "Content-Type, Authorization") // Обработка запроса // ... // Возвращаем ответ w.WriteHeader(http.StatusOK) w.Write([]byte("Пример успешного запроса")) }) // Запуск сервера http.ListenAndServe(":8080", mux) } |
В приведенном выше примере для всех запросов добавляются заголовки Access-Control-Allow-Origin
, Access-Control-Allow-Methods
и Access-Control-Allow-Headers
. Значение "*"
в Access-Control-Allow-Origin
позволяет запросам с любого домена. Если вы хотите ограничить доступ только для определенных доменов, вы можете указать их вместо "*"
.
@ottilie.farrell
Кроме того, в зависимости от требований вашего веб-приложения, вам также может понадобиться использовать middleware для обработки CORS. Вот пример использования middleware для обработки ошибки CORS в Golang:
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 |
package main import ( "net/http" "github.com/rs/cors" ) func main() { mux := http.NewServeMux() mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { // Обработка запроса // ... // Возвращаем ответ w.WriteHeader(http.StatusOK) w.Write([]byte("Пример успешного запроса")) }) // Создаем новый cors.Handler с нужными настройками handler := cors.Default().Handler(mux) // Запуск сервера с использованием CORS middleware http.ListenAndServe(":8080", handler) } |
В этом примере мы используем пакет github.com/rs/cors для создания middleware для обработки CORS. Вы можете настроить правила CORS, добавляя определенные параметры при создании нового cors.Handler().
Таким образом, вы можете исправить ошибку CORS в вашем веб-приложении на Golang, используя либо добавление заголовков CORS напрямую в обработчики, либо использование CORS middleware для обработки CORS ошибок.