繁体   English   中英

Go gin - 从本地浏览器获取数据

[英]Go gin - fetch data from local browser

我有一个用 Go Gin 编写的简单服务器:

package main

import (
    "net/http"

    "github.com/gin-contrib/cors"
    "github.com/gin-gonic/gin"
)

func main() {
    router := gin.Default()

    router.Use(cors.Default())
    router.GET("/", func(context *gin.Context) {
        context.JSON(http.StatusOK, gin.H{"hello": "world"})
    })

    router.Run(":8080")
}

如果我从fetch控制台(Ubuntu 上的 97.0.2(64 位))获取数据:

fetch('http://localhost:8080/')
  .then(response => response.json())
  .then(data => console.log(data));

我收到以下错误:

Content Security Policy: The page’s settings blocked the loading of a resource at http://localhost:8080/ 
Uncaught (in promise) TypeError: NetworkError when attempting to fetch resource.

同时,如果我使用 curl 从终端执行相同的HTTP GET 请求,我会得到正确的结果:

curl -X GET http://localhost:8080/

{"hello":"world"}

是否可以使用浏览器测试 Go gin 服务器?

如果您尝试从不同的位置执行 ajax 请求,然后请求请求位置然后请求将被Content Security Policy (CSP)阻止,这有助于检测和缓解某些类型的攻击。 您可以在此处阅读有关 CSP 的更多信息。

为了获取工作,你必须 go 到相同的位置并从该位置发出获取请求,在你的情况下它是http://localhost:8080/

注意:由于您已经定义了在浏览器中打开位置时返回 json 的根路由,这可能会引发 GET 请求,并且将在浏览器中返回响应 json。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM