如何在同一域上运行Golan应用程序(后端)和ReactJS应用程序(前端)以防止CORS?

San*_*rog 0 go reactjs

所以,我有一个golang应用程序和reactJs应用程序。如果我在不同的域上运行它们,则会遇到CORS问题。

在服务器端允许CORS根本不是问题,但是我无法从服务器获取cookie,因为浏览器会将它们作为第三方cookie忽略。

因此,我看到了一个非常简单的解决方案-在同一域上运行服务器和前端,但是我不知道该怎么做。如何配置所有内容以使其在同一域上运行而不会发生冲突?防止golang应用程序和ReactJS应用程序之间发生CORS的最佳实践是什么?

Pet*_*ter 5

使用Go的文件服务器提供静态资产:

package main

import (
    "log"
    "net/http"
)

func main() {
    http.HandleFunc("/api/", apiHandler)
    http.Handle("/", http.FileServer(http.Dir("/var/www/my-app")))
    log.Fatal(http.ListenAndServe(":3000", nil))
}

func apiHandler(w http.ResponseWriter, r *http.Request) {}
Run Code Online (Sandbox Code Playgroud)

该文档具有http.FileServer的更多示例

另外,您可以使用类似github.com/jteeuwen/go-bindata(和go-bindata-assetfs)的内容将资产编译为Go二进制文件并从内存中提供它们。