首页 >后端开发 >Golang >如何通过 AJAX 调用在 Gin 路由器中提供静态文件?

如何通过 AJAX 调用在 Gin 路由器中提供静态文件?

Barbara Streisand
Barbara Streisand原创
2024-11-04 05:46:29515浏览

How to Serve Static Files in Gin Router with an AJAX Call?

在 Gin 路由器中提供对静态文件的访问

在本指南中,我们将解决在 Gin 服务器中提供 JSON 文件的挑战。此外,我们的目标是使用 JavaScript 调用 JSON 数据来实现 HTML 文件的定制。

应用程序结构由以下部分组成:

  • main.go:主逻辑文件
  • templates:包含 HTML 和 JSON 文件的目录

    • index.html:HTML 文件
    • web.json:JSON 文件

main.go 文件包含必要的导入并定义路由器。

<code class="go">package main

import (
    "net/http"

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

var router *gin.Engine

func main() {
    router = gin.Default()
    router.LoadHTMLGlob("templates/*")

    // Register custom route for serving static JSON file
    router.StaticFS("/web.json", http.Dir("./templates"))

    // Route for rendering the HTML template
    router.GET("/web", func(c *gin.Context) {
        c.HTML(
            http.StatusOK,
            "index.html",
            gin.H{
                "title": "Web",
                "url":   "/web.json",
            },
        )
    })

    router.Run()
}</code>

在index.html 中,JavaScript 代码使用提供的 URL 进行 AJAX 调用来检索JSON 数据。

<code class="html"><script>
    window.onload = function() {
        const ui = SwaggerUIBundle({
            url: "{{ .url }}",
            dom_id: '#swagger-ui',
            // ...
        })
        // End Swagger UI call region

        window.ui = ui
    }
</script></code>

通过指定用于提供 web.json 文件的 staticFS 路由,我们确保了 HTML 模板中 AJAX 调用的可访问性。这解决了之前遇到的获取错误。

以上是如何通过 AJAX 调用在 Gin 路由器中提供静态文件?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn