Javascript 在HTML元素中显示JSON webapi元素
我目前正在努力显示来自Web API的结果,我对这类事情还不熟悉,所以请原谅这种可怕的理解。我的错误在于身份验证。后来我发现API链接不正确,现在(通过python)我可以使用它调用正确的结果。我的问题在于不知道如何在Javascript中获得相同的结果,并将其解析为只显示字符串“value”。我将在下面发布一个来自API的数据示例,并将突出显示我所需要的内容。总体目标是在P标记中显示“value”数字,其位置可以在我的HTML中找到。下面是我的html部分,我试图在其中显示值:Javascript 在HTML元素中显示JSON webapi元素,javascript,html,json,Javascript,Html,Json,我目前正在努力显示来自Web API的结果,我对这类事情还不熟悉,所以请原谅这种可怕的理解。我的错误在于身份验证。后来我发现API链接不正确,现在(通过python)我可以使用它调用正确的结果。我的问题在于不知道如何在Javascript中获得相同的结果,并将其解析为只显示字符串“value”。我将在下面发布一个来自API的数据示例,并将突出显示我所需要的内容。总体目标是在P标记中显示“value”数字,其位置可以在我的HTML中找到。下面是我的html部分,我试图在其中显示值: <div
<div class="card-content">
<p>The light sensor will detect exterior lighting conditions, and will turn on or off any outside lights based on the enviroment.</p><br>
<center>
<div class="reading-circle light" id="tempcircle">
<!----VALUE HERE IN P ELEMENT---->
</div>
</center>
</div>
上面的示例不包括value属性,因为设备没有记录任何结果,但是当我们通过python运行它时,我们给它提供了虚拟值,因为它最终将来自一个实时传感器我们可以知道什么不适用于您的代码吗?“挣扎”不是错误消息或问题陈述。你有控制台错误吗?意外行为?你调试代码了吗?出于好奇,我尝试在浏览器中手动打开您示例中的URL,但它a)尝试将我重定向到登录页面,然后b)登录页面超时并出现网关错误。因此,即使没有超时问题,看起来URL需要客户端对其进行身份验证,从我可以看到您的AJAX请求没有发送任何类型的凭据(即用户名/密码、API密钥、访问令牌或任何需要的凭据)加载失败:请求的资源上不存在“Access Control Allow Origin”标头。因此,不允许访问源“null”。响应的HTTP状态代码为404。-这是chrome控制台的错误。我必须删除链接中的招摇过市,它才能工作(ish)。授权是一个问题,但我不确定如何添加登录详细信息等。我已经编辑了更深入的帖子。希望这有帮助!我认为你的js有一个错误。它看起来像代码
const t_reading=document.createElement('p');sensor.value=sensor.value.substring(0,300);p、 textContent=
${sensor.value};tempcirle.appendChild(p)代码>应该是const t_reading=document.createElement('p');sensor.value=sensor.value.substring(0,300);t_reading.textContent=
${sensor.value};附录儿童(t_阅读)代码>
const app = document.getElementById('tempcircle');
var request = new XMLHttpRequest();
request.open('GET', 'https://swagger.richard-murphy.iotpdev.com/api/1/devices/snapshot/paged', true);
request.onload = function () {
var data = JSON.parse(this.response);
if (request.status >= 200 && request.status < 400) {
data.forEach(sensor => {
const t_reading = document.createElement('p');
sensor.value = sensor.value.substring(0, 300);
p.textContent = `${sensor.value}`;
tempcircle.appendChild(p);
});
}
}
request.send();
{
"id": "e370df3d-6283-459f-9d8e-0b614dec578b",
"name": "Themometer",
"typeId": "88f06b08-59e0-43ae-ae95-2d4ee4f1a66e",
"deviceId": "fb903ae2-67de-46cb-8cb7-9eb3faf62e1d",
"attributes": {},
"minimumNormalOperatingValue": -15,
"maximumNormalOperatingValue": 60,
"minimumValue": 0,
"maximumValue": 40,
"displayName": "Thermometer"
},