Heim >Backend-Entwicklung >Golang >Warum wird der Cors-Fehler nicht behoben?
Cors ist in Golang erlaubt, der Code lautet wie folgt
func register() *echo.echo { e := echo.new() e.get("/swagger/*", echoswagger.wraphandler) // swagger 등록 validator.registervalidator(e) // 유효성검사 등록 e.use(middleware.cors()) // cors 등록 ...... package middleware import ( "github.com/labstack/echo/v4" "github.com/labstack/echo/v4/middleware" ) func cors() echo.middlewarefunc { return middleware.corswithconfig(middleware.corsconfig{ alloworigins: []string{"http://localhost:3000"}, allowmethods: []string{echo.get, echo.put, echo.post, echo.delete}, allowheaders: []string{echo.headerorigin, echo.headercontenttype, echo.headeraccept}, exposeheaders: []string{echo.headercontentlength}, }) }
Aber selbst wenn ich eine Anfrage von (localhost:3000) im Reaktionsprojekt sende, hört der Cors-Fehler nicht auf.
func (serverInfo *ServerInfo) ServerStart() { var databaseSet database.DatabaseInterface = &mysql.MysqlInfo{} // Database databaseSet.InitDatabase() // 데이터베이스를 초기화합니다 hosts := map[string]*Host{} // Hosts // API hosts[fmt.Sprintf("%v.%v:%v", "api.v1", os.Getenv(envkey.SERVER_URL), os.Getenv(envkey.PORT))] = &Host{apiV1Route.Register()} // Server e := echo.New() e.Use(middleware.Logger()) // 로거등록 e.Any("/*", func(c echo.Context) (err error) { req := c.Request() res := c.Response() host := hosts[req.Host] if host == nil { err = echo.ErrNotFound } else { host.Echo.ServeHTTP(res, req) } return }) // e.Logger.Fatal(e.StartTLS(fmt.Sprintf(":%v", os.Getenv(envkey.PORT)), "housewhale.com+3.pem", "housewhale.com+3-key.pem")) e.Logger.Fatal(e.Start(fmt.Sprintf(":%v", os.Getenv(envkey.PORT)))) }
Ich habe seit mehreren Tagen mit diesem Problem zu kämpfen. Wie kann ich es lösen? Ich habe alles versucht, was ich im Handbuch oder auf Google gefunden habe, aber der Cors-Fehler verschwindet nicht.
Es ist ein Fehler aufgetreten, es war kein Fehler angehängt, ich habe den folgenden Fehler angehängt und das Problem wurde zu diesem Zeitpunkt gelöst.
access to fetch at 'https://api.v1.localhsot:8081/auth/retoken' from origin 'http://localhost:3000' has been blocked by cors policy: response to preflight request doesn't pass access control check: no 'access-control-allow-origin' header is present on the requested resource. if an opaque response serves your needs, set the request's mode to 'no-cors' to fetch the resource with cors disabled.
Cors ist auf der Serverseite nicht korrekt zulässig, bitte konfigurieren Sie die Serverseite so, dass sie der Anfrage entspricht
Wenn der Client beispielsweise Autorisierungsdaten an den Header sendet, lässt der Server auch die Autorisierung im Header zu. Richten Sie die notwendigen Anfragen so ein
package middleware import ( "github.com/labstack/echo/v4" "github.com/labstack/echo/v4/middleware" ) func Cors() echo.MiddlewareFunc { return middleware.CORSWithConfig(middleware.CORSConfig{ AllowOrigins: []string{"http://localhost:3000"}, AllowMethods: []string{echo.GET, echo.PUT, echo.POST, echo.DELETE}, AllowHeaders: []string{echo.HeaderOrigin, echo.HeaderContentType, echo.HeaderAccept, echo.HeaderAuthorization}, ExposeHeaders: []string{echo.HeaderContentLength, echo.HeaderSetCookie}, AllowCredentials: true, // Add this line to allow credentials }) }
Das obige ist der detaillierte Inhalt vonWarum wird der Cors-Fehler nicht behoben?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!