不允许获取错误方法和内容类型:文本/纯文本

我的所有路线都完美运行,除了.每当我使用该方法添加数据时,它都会给我消息。当我检查方法标头内容类型时,它是应用程序/ json,但是当我检查方法标头内容类型时,它是文本/纯;charset = utf-8。所以我认为内容类型一定存在问题。我不明白如何解决这个问题。我附上了屏幕截图以供参考。
截图:在此处输入图像描述 在此处输入图像描述
路线:CreateGoalPostmethod not allowedGetPost

func Setup(app *fiber.App) {


    app.Get("/goals", controllers.GetGoals)

    app.Get("/goals/:id", controllers.GetGoal)

    app.Post("/goals/add", controllers.CreateGoal)

    app.Put("/goals/:id", controllers.UpdateGoal)

    app.Delete("/goals/:id", controllers.DeleteGoal)


}

控制器:



import (

    "strconv"

    "github.com/gofiber/fiber/v2"

)


type Goal struct {

  Id        int    `json:"id"`

  Title     string `json:"title"`

  Status        bool   `json:"status"`

}


var goals = []*Goal{

    {

        Id:        1,

        Title:     "Read about Promises",

        Status:         true,

    },

    {

        Id:        2,

        Title:     "Read about Closures",

        Status:         false,

    },

}


func GetGoals(c *fiber.Ctx) error {

    return c.Status(fiber.StatusOK).JSON(

    // "success":  true,

    // "data": fiber.Map{

            // "goals": goals,

        // },

        goals,

  )

}


func CreateGoal(c *fiber.Ctx) error {

    type Request struct {

        Title string `json:"title"`

    }


    var body Request

    err := c.BodyParser(&body)

    if err != nil {

        return c.Status(fiber.StatusBadRequest).JSON(fiber.Map{

            "success": false,

            "message": "Cannot parse JSON",

            "error":   err,

        })

    }


    goal := &Goal{

        Id:        len(goals) + 1,

        Title:     body.Title,

        Status: false,

    }


    goals = append(goals, goal)


    return c.Status(fiber.StatusCreated).JSON(fiber.Map{

        "success": true,

        "data": fiber.Map{

            "goal": goal,

        },

    })

}


眼眸繁星
浏览 79回答 1
1回答

一只斗牛犬

您的终端节点位于方法的应用程序中。但是在《邮递员》中,你叫/goals/addPOST/goals在应用程序中期待请求。这就是为什么有方法不允许。/goalsGET
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go