Tujuan saya adalah melakukan permintaan get sederhana dan menampilkan data ke halaman HTML.

Jadi pertama-tama saya mengatur permintaan di node.js untuk mengujinya. Dengan node, data muncul dengan benar ketika saya menjalankannya dengan console.log(response).

Masalahnya muncul ketika saya mencoba menampilkan data ke halaman. Pada dasarnya, tidak ada yang muncul saat saya mencoba document.getElementByID('demo').innerHTML = response; Saya bahkan mencoba menggunakan peringatan tetapi tidak berhasil.

Saya jelas melakukan sesuatu yang salah tetapi saya tidak cukup akrab dengan JavaScript untuk mengetahuinya.

<!DOCTYPE html>
<html>
<head>

</head>
<body>

<p id="demo"></p>

<script>

//causes error in html. Required for node.
// var XMLHttpRequest = require("xmlhttprequest").XMLHttpRequest;

var HttpClient = function() {
    this.get = function(aUrl, aCallback) {
              var anHttpRequest = new XMLHttpRequest();
                anHttpRequest.onreadystatechange = function() { 
                if (anHttpRequest.readyState == 4 && anHttpRequest.status == 200)
                   aCallback(anHttpRequest.responseText);
                }

            anHttpRequest.open( "GET", aUrl, true );            
              anHttpRequest.send( null );
        }
}

var theURL = 'https://XXXXXX..';
var client = new HttpClient();
let thisReply = null;
client.get(theURL, function(response) {
//   var response1 = JSON.parse(response);
    // alert(response1);
    // console.log(response);
    document.getElementById('demo').innerHTML = response;
});

</script>
</body>
</html>
0
binjamin 30 Oktober 2019, 20:10

2 jawaban

Jawaban Terbaik

@PrerakSola dan @Abdullah Danyal menjawab pertanyaan di komentar postingan utama. "Saya memeriksanya dan saya melihat kesalahan konsol yang mengatakan Access to XMLHttpRequest di 'APILINK' from Origin 'http://...' telah diblokir oleh kebijakan CORS: Tidak ada header 'Access-Control-Allow-Origin' pada sumber daya yang diminta"

JAWABAN: "Anda harus mengaktifkan CORS di server API Anda. Jika Anda menggunakan node bersama dengan express, lihat: expressjs.com/en/resources/middleware/cors.html"

0
binjamin 1 November 2019, 15:23

Dengan asumsi ini bukan masalah dengan dokumen yang tidak menemukan elemen yang Anda cari, Anda dapat mencoba .innerText = response atau membungkus elemen innerHTML Anda di beberapa elemen HTML: <p>${response}</p> Saya pasti juga akan keluar dari elemen itu selain respons api untuk memastikan Anda mengambil hal yang benar.

0
anna 30 Oktober 2019, 19:51