如何允许 CORS 使用多个端口?

Posted

技术标签:

【中文标题】如何允许 CORS 使用多个端口?【英文标题】:How can I allow CORS using many ports? 【发布时间】:2020-09-27 05:37:57 【问题描述】:

我遇到了这段代码,想在端口 1111、1112 和 1113 上允许 CORS,我该怎么做?

router := mux.NewRouter().StrictSlash(true)
router.HandleFunc("/all", All).Methods("GET")
router.HandleFunc("/gotoT", Goto).Methods("GET")
headers := handlers.AllowedHeaders([]string"X-Requested-With", "Content-Type", "Authorization")
methods := handlers.AllowedMethods([]string"GET", "POST", "PUT", "HEAD", "OPTIONS")
origins := handlers.AllowedOrigins([]string"*")
log.Fatal(http.ListenAndServe(":1111", handlers.CORS(headers, methods, origins)(router)))

在这个例子中,CORS 只监听端口 1111所以我想添加更多端口,请帮忙?

【问题讨论】:

在本例中,http-server 正在监听端口 1111。您希望同一台服务器同时在不同端口上运行吗?也许端口转发是一个更好的主意。 【参考方案1】:

将它们放在单独的 goroutines 中:

router := mux.NewRouter().StrictSlash(true)
router.HandleFunc("/all", All).Methods("GET")
router.HandleFunc("/gotoT", Goto).Methods("GET")
headers := handlers.AllowedHeaders([]string"X-Requested-With", "Content-Type", "Authorization")
methods := handlers.AllowedMethods([]string"GET", "POST", "PUT", "HEAD", "OPTIONS")
origins := handlers.AllowedOrigins([]string"*")

corsRouter := handlers.CORS(headers, methods, origins)(router)

go func() 
    log.Fatal(http.ListenAndServe(":1111", corsRouter))
()

go func() 
    log.Fatal(http.ListenAndServe(":1112", corsRouter))
()

log.Fatal(http.ListenAndServe(":1113", corsRouter))

【讨论】:

以上是关于如何允许 CORS 使用多个端口?的主要内容,如果未能解决你的问题,请参考以下文章

CORS 允许所有在同一服务器上的不同端口在 JAVA 中

如何使用信号器允许 cors

请求在 WAMP 上被阻止,但在 XAMPP 上允许 CORS

请求在 WAMP 上被阻止,但在 XAMPP 上允许 CORS

动态更改 CORS 端口

如何在多个 HTTPS 端口上运行 Spring Boot HTTPS 服务器