json 无法从Golang服务器获取JS响应

dgiusagp  于 2023-03-24  发布在  Go
关注(0)|答案(1)|浏览(114)

我有HTML:

<button onclick="clickListener()" id="form-button" type="button" class="btn btn-primary">Click</button>

联森:

<script>
        const clickListener = () => {
            console.log('clickListener()')

            fetch("/address")
                .then(response => {
                    console.log(response)
                })
                .catch(e => {
                    console.log(e)
                })
        }
   </script>

开始:

func Handler(writer http.ResponseWriter, request *http.Request) {
    response := jsonResponse{IsAvailable: true, Message: "Available"}

    responseInJsonFormat, err := json.MarshalIndent(response, "", " ")
    if err != nil {
        log.Println("cannot convert response data to JSON")
        return
    }

    writer.Header().Set("Content-Type", "application/json")
    _, err = writer.Write(responseInJsonFormat)
    if err != nil {
        log.Println("cannot convert response data to JSON")
    }
}

如果我使用浏览器,我会得到JSON格式的响应,其中包含数据{IsAvailable:真,消息:“可用”}。
一切正常。
但是由于某些原因,我无法在JS中获得这些数据。我在JS中得到的响应是:

没有标题或数据。
我怎样才能得到它?
谢谢你!

cyvaqqii

cyvaqqii1#

Fetch返回一个Response对象,然后必须将其解析为可用的格式,例如JSON或文本。由于您希望使用JSON格式,因此需要执行以下操作:

fetch('/address')
  .then(response => response.json())
  .then(data => console.log(data))
  .catch(e => console.log(e))

查看"Using the Fetch API"以了解更多详细信息。

相关问题