Saya ada 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>
Pergi ke:
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") } }
Jika saya menggunakan penyemak imbas, saya menerima respons dalam format json dengan data {isavailable: true, message: "available"}.
Semuanya berfungsi dengan baik.
Tetapi atas sebab tertentu saya tidak boleh mendapatkan data ini dalam js. Jawapan yang saya dapat dalam js ialah:
Tiada tajuk atau data.
Bagaimana saya boleh mendapatkannya?
Terima kasih!
fetch mengembalikan objek response
yang kemudiannya mesti dihuraikan ke dalam format yang boleh digunakan seperti json atau teks. Memandangkan anda mahukan format json, anda perlu melakukan perkara berikut:
fetch('/address') .then(response => response.json()) .then(data => console.log(data)) .catch(e => console.log(e))
Lihat "Menggunakan api ambil" untuk butiran lanjut.
Atas ialah kandungan terperinci Tidak dapat mendapatkan respons JS daripada pelayan Golang. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!