繁体   English   中英

API 数据打印到节点中的控制台,但不在 html 中显示

[英]API data prints to console in node but doesn't display in html

我的目标是做一个简单的获取请求并将数据显示到 HTML 页面。

所以首先我在 node.js 中设置请求来测试它。 使用节点,当我使用console.log(response)运行它时,数据正确显示。

当我尝试将数据显示到页面时,问题就来了。 基本上,当我尝试document.getElementByID('demo').innerHTML = response; 我什至尝试只使用警报但无济于事。

我显然做错了什么,但我对 JavaScript 不够熟悉。

<!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>

@PrerakSola 和 @Abdullah Danyal 在主要帖子评论中回答了这个问题。 “我检查了,我看到一个控制台错误,说从源 'http://...' 在 'APILINK' 访问 XMLHttpRequest 已被 CORS 策略阻止:没有 'Access-Control-Allow-Origin' Z099FB995346F339EFZ 存在60DBF339E439在请求的资源上”

回答:“您需要在 API 服务器上启用 CORS。如果您使用 node 和 express,请参阅:expressjs.com/en/resources/middleware/cors.html”

假设这不是文档找不到您要查找的元素的问题,您可以尝试.innerText = response 或将您的 innerHTML 元素包装在一些 HTML 元素中: <p>${response}</p>我敢肯定除了 api 响应之外,还要注销该元素,以确保您抓住了正确的东西。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM