Maison >développement back-end >Golang >Comment définir des en-têtes HTTP dans un serveur Web Go à l'aide de gorilla/mux ?

Comment définir des en-têtes HTTP dans un serveur Web Go à l'aide de gorilla/mux ?

DDD
DDDoriginal
2024-12-23 02:05:08865parcourir

How to Set HTTP Headers in a Go Web Server using gorilla/mux?

Définition des en-têtes HTTP dans le serveur Web Go

Lors du développement d'un serveur Web à l'aide de Go, il est souvent nécessaire de définir des en-têtes HTTP en réponse à demandes des clients. Cela vous permet de contrôler le comportement du navigateur et de fournir des informations essentielles sur le serveur et ses ressources.

Pour définir les en-têtes HTTP dans un serveur Web Go à l'aide de gorilla/mux et net/http, vous pouvez utiliser la méthode Set() de la fonction Header(). Voici un exemple de la façon de définir l'en-tête Access-Control-Allow-Origin sur "*":

func saveHandler(w http.ResponseWriter, r *http.Request) {
    // allow cross domain AJAX requests
    w.Header().Set("Access-Control-Allow-Origin", "*")
}

En ajoutant les lignes ci-dessus à votre fonction de gestionnaire, vous demandez au serveur de répondre à l'origine croisée demandes de n’importe quelle origine avec l’en-tête Access-Control-Allow-Origin défini sur « * ». Cela permet les appels AJAX inter-domaines sans être bloqués par la politique de même origine.

Pour rendre cet en-tête disponible pour toutes vos routes, vous pouvez utiliser la fonction Use() de gorilla/mux pour ajouter un middleware à votre routeur. :

func main() {
    r := mux.NewRouter()
    r.Use(mux.CORSMethodMiddleware(r))
    r.HandleFunc("/save", saveHandler)
    http.Handle("/", r)
    http.ListenAndServe(":"+port, nil)
}

Ce middleware ajoutera automatiquement l'en-tête Access-Control-Allow-Origin à toutes les réponses, quel que soit l'itinéraire.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn