{console.log(response)}).catch"/> {console.log(response)}).catch">
Heim >Backend-Entwicklung >Golang >JS-Antwort vom Golang-Server kann nicht abgerufen werden
Ich habe HTML:
<button onclick="clicklistener()" id="form-button" type="button" class="btn btn-primary">click</button>
js:
<script> const clicklistener = () => { console.log('clicklistener()') fetch("/address") .then(response => { console.log(response) }) .catch(e => { console.log(e) }) } </script>
Gehe zu:
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") } }
Wenn ich den Browser verwende, erhalte ich eine Antwort im JSON-Format mit den Daten {isavailable: true, message: „available“}.
Alles ist normal.
Aber aus irgendeinem Grund kann ich diese Daten nicht in js abrufen. Die Antwort, die ich in js bekomme, ist:
Kein Titel oder Daten.
Wie kann ich es bekommen?
Danke!
fetch gibt ein response
-Objekt zurück, das dann in ein verwendbares Format wie JSON oder Text geparst werden muss. Da Sie das JSON-Format wünschen, müssen Sie Folgendes tun:
fetch('/address') .then(response => response.json()) .then(data => console.log(data)) .catch(e => console.log(e))
Weitere Informationen finden Sie unter „Verwenden der Abruf-API“ .
Das obige ist der detaillierte Inhalt vonJS-Antwort vom Golang-Server kann nicht abgerufen werden. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!