当前位置: 首页 > news >正文

做网站 郑州公司福州网站制作费用

做网站 郑州公司,福州网站制作费用,网站权重怎么做,公众号商城开发需要多少钱Gin 框架解决跨域问题 一点废话 在学习 Axios 的时候发现 up 使用了一个网址来提供 json 数据。因为不想加什么公众号搞啥百度网盘的,然后又刚好会一点点 go,就想着自己用 gin 框架返回一个 json 到前端页面然后从这个页面获取 json 。 这是我的go代码…

Gin 框架解决跨域问题

一点废话

在学习 Axios 的时候发现 up 使用了一个网址来提供 json 数据。因为不想加什么公众号搞啥百度网盘的,然后又刚好会一点点 go,就想着自己用 gin 框架返回一个 json 到前端页面然后从这个页面获取 json

这是我的go代码:

package mainimport ("github.com/gin-gonic/gin"
)func main() {r := gin.Default()r.GET("/test", func(c *gin.Context) {c.JSON(200, gin.H{"id":    "1","name":  "feixin","major": "big data","old":   "20",})})err := r.Run()if err != nil {panic(err)}
}

初学者写的比较low,高手勿喷🥹🥹🥹
下面是我的 html 代码

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Ajax-Axios</title><script src="../js/axios.js"></script></head><body><input type="button" value="GET" onclick="get()"><input type="button" value="POST" onclick="post()">
</body>
<script>function get() {axios({method: "get",url: "http://localhost:8080/test"}).then((result) => {console.log(result.data);})}function post() {}
</script></html>

很简单的基本操作,go 这边实现了 http://localhost:8080/testjson数据,然后 axios 这边从 origin http://127.0.0.1:5500/web/html/test.html 向前者获取 json 数据并打印在 console 中。

运行之后发现出现如下错误:
在这里插入图片描述
bing 之后发现是跨域问题。

这里就不介绍跨域问题了,贴一个佬的讲解。你还不知道跨域问题是怎样造成的吗?


解决方法

反正就大概懂了这个请求我是发成功了,但是因为是 XHR 出现跨域问题 被拦截了,看了这个佬
—传送门— 的文章之后,知道了在 gin 中可以使用中间件来解决这个问题。我的解决步骤如下:

  1. 首先定义一个middlerwares包,新建 go file,任意取名。
    写入以下代码:

    package middlewaresimport ("github.com/gin-gonic/gin""net/http"
    )func Cors() gin.HandlerFunc {return func(c *gin.Context) {method := c.Request.Methodorigin := c.Request.Header.Get("Origin")if origin != "" {c.Header("Access-Control-Allow-Origin", "http://127.0.0.1:5500") // 写入origin的地址,例如我这边是这个c.Header("Access-Control-Allow-Methods", "POST, GET, OPTIONS, PUT, DELETE, UPDATE")c.Header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept, Authorization")c.Header("Access-Control-Expose-Headers", "Content-Length, Access-Control-Allow-Origin, Access-Control-Allow-Headers, Cache-Control, Content-Language, Content-Type")c.Header("Access-Control-Allow-Credentials", "true")}if method == "OPTIONS" {c.AbortWithStatus(http.StatusNoContent)}c.Next()}
    }
  2. 然后修改go 代码为:

    package mainimport ("github.com/gin-gonic/gin"middlewares "test.com/helloworld/middlerwares" //多导了这个
    )func main() {r := gin.Default()r.Use(middlewares.Cors()) // 多加了这一句r.GET("/test", func(c *gin.Context) {c.JSON(200, gin.H{"id":    "1","name":  "feixin","major": "big data","old":   "20",})})err := r.Run()if err != nil {panic(err)}
    }
  3. 运行go程序并重新执行 html 代码
    在这里插入图片描述
    点击 GET 成功拿到数据


总结

在javaweb 用 go 语言也是逆天,但是还没有学 springboot 呜呜呜,springboot应该也可以实现类似的操作。总之就是 XHR 产生跨域问题 被目标地址 block了,我们在服务端对 origin 开放一下就可以了。

http://www.yayakq.cn/news/846252/

相关文章:

  • 棋牌网站开发搭建me域名网站
  • 软文网站推广怎么做专门卖二手衣服的网站
  • 深圳高端网站建设创新天台做网站
  • 丹阳做网站的公司郑州网站建设培训
  • 店面设计英文网络优化工程师面试题
  • 北京个人制作网站有哪些内容二手车网站模版
  • 自己做公司的网站wordpress 不能上传
  • 舟山网站建设有哪些南昌网站建设制作商
  • 网站建设维护费 会计科目个人电脑搭建游戏服务器
  • 如何做产品网站品牌建设运营的最高境界是
  • 判断网站是否被k做软件赚钱的网站
  • 做网站用哪个软件写比较好wordpress页面不显示
  • 网站定位广告个人做网站能赚钱吗
  • 河北建设厅注册中心网站合肥网站建设方案策划
  • 深圳市网站建设科技公司郑州新闻头条最新消息
  • 小白怎样建设公司网站手游网站怎么做
  • 网站建设评比文章住房和规划建设局网站
  • 如何修改网站备案信息信息型网站
  • dj网站建设网站建设预算表样本
  • 优设网站怎么下载百度搜索名字排名优化
  • 下载了源码怎么做网站网站建设国际深圳
  • 昆山市做网站的公司网站相关知识
  • 网站备案号显示红色系统网站怎么做
  • 北京做兼职网站西安旅游景点排名前十名
  • 郑州网站托管公司哪家好西安网页制作培训机构
  • 没有工信部备案的网站是骗子吗php做网站首页修改
  • 会展类网站模板免费建站网页无需登陆
  • 厦门建站系统建设响水哪家专业做网站
  • 海宁长安网站开发网站描文本
  • 网站建设共享ip益阳学校网站建设