在前端访问golang iris框架rest调用时出现Cors问题

在前端访问golang iris框架rest调用时出现Cors问题,go,go-iris,Go,Go Iris,我正在使用golang iris框架通过rest调用添加用户。这是我的密码 package main import ( "fmt" "github.com/iris-contrib/middleware/cors" "github.com/kataras/iris" ) type User struct { Name string } func main() { app := iris.New() crs := cors.New(cors

我正在使用golang iris框架通过rest调用添加用户。这是我的密码

package main

import (
    "fmt"

    "github.com/iris-contrib/middleware/cors"
    "github.com/kataras/iris"
)

type User struct {
    Name string
}

func main() {
    app := iris.New()

    crs := cors.New(cors.Options{
        AllowedOrigins:   []string{"*"},
        AllowedMethods:   []string{"GET", "POST", "DELETE"},
        AllowCredentials: true,
    })
    app.Use(crs)
    //
    app.Post("/send", func(ctx iris.Context) {
        // deployment Object
        name := User{}
        ctx.ReadJSON(&name)
        fmt.Println(name)
    })

    app.Run(iris.Addr("localhost:8080"))
}
它工作得很好。但我在ajax调用前遇到了cors错误。我添加了cors选项。但我还是得到了下面的错误

    Cross-Origin Request Blocked: The Same Origin Policy disallows reading the 
remote resource at http://localhost:8080/send. (Reason: CORS header ‘Access-Control-Allow-Origin’ missing).  (unknown)
我找不到错误所在。请任何人帮助解决这个问题


提前感谢。

您必须使用
.AllowMethods(iris.MethodOptions)
功能为您的
聚会/小组
或整个应用程序允许
选项
HTTP方法。这个例子已经向您展示了方法

package main

import (
    "fmt"

    "github.com/iris-contrib/middleware/cors"
    "github.com/kataras/iris/v12"
)

type User struct {
    Name string
}

func main() {
    app := iris.New()

    crs := cors.New(cors.Options{
        AllowedOrigins:   []string{"*"},
        AllowedMethods:   []string{"GET", "POST", "DELETE"},
        AllowCredentials: true,
    })
    app.Use(crs)
    //
    app.AllowMethods(iris.MethodOptions) // <- HERE
    app.Post("/send", func(ctx iris.Context) {
        // deployment Object
        name := User{}
        ctx.ReadJSON(&name)
        fmt.Println(name)
    })

    app.Run(iris.Addr(":8080"))
}
主程序包
进口(
“fmt”
“github.com/iris contrib/middleware/cors”
“github.com/kataras/iris/v12”
)
类型用户结构{
名称字符串
}
func main(){
app:=iris.New()
crs:=cors.New(cors.Options{
AllowedOriginates:[]字符串{“*”},
AllowedMethods:[]字符串{“获取”、“发布”、“删除”},
AllowCredentials:正确,
})
应用程序使用(crs)
//

app.AllowMethods(iris.MethodOptions)//请您为请求提供标题(错误原因)。var config={headers:{'kubernetes api key':'eVBaXmU5XcbMhdorUMpUO6eQI1Jv8pDK',};$http.Post(“,config.),然后(函数(响应){console.log(响应)});我使用了自定义标题。我在允许的标题中添加了客户标题。但不起作用。