我正在使用Gin-gonic来创建API。所有请求,无论是GET还是POST都是JSON。
我有一个API调用工作正常但我 使用cURL -H "Accept: application/json" -H "Content-type: application/json"
添加这些标头,否则POST无法按预期工作。
我尝试将此功能添加为中间件但是虽然它略微改变了标题,但它仍无法按预期工作
func CORSMiddleware() gin.HandlerFunc {
return func(c *gin.Context) {
c.Writer.Header().Set("Content-Type", "application/json")
c.Writer.Header().Set("Access-Control-Allow-Origin", "*")
c.Writer.Header().Set("Access-Control-Allow-Headers", "Content-Type, Content-Length, Accept-Encoding, X-CSRF-Token, Authorization")
}
}
标题有效(在cURL中添加标题):
Accept: application/json
Content-type: application/json
标头无法正常工作(cURL中没有标头):Accept: */*
Content-Type: application/x-www-form-urlencoded
有没有办法强制标题而不是要求用户提供标题?
答案 0 :(得分:0)
Content-type
是一个导入HTTP标头,让服务器决定如何解析HTTP正文。
有没有办法强制标题而不是要求用户提供标题?
很难说是或否,这取决于您的'用户'。对于curl,它无法猜测HTTP正文格式并自动将Content-Type设置为'applicatoin / json',因此您需要指定Content-Type。对于像jQuery这样的其他人,程序员可以在帖子dataType
link中设置jQuery.post( url [, data ] [, success ] [, dataType ] )