首頁 >後端開發 >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