【发布时间】:2020-08-05 01:22:44
【问题描述】:
我一直在努力在 HTML 页面上呈现 API 请求返回的数据对象,但是它一直在 HTML 页面上显示字符串对象。另一个问题是我无法在 Javascript 的 API 函数之外使用 API 请求返回的数据对象。请看下面的代码:
- API请求,API函数外的
console.log(data)不起作用
var params = {
// Request parameters
};
$.ajax({
url:
"https://failteireland.azure-api.net/opendata-api/v1/attractions?" +
$.param(params),
beforeSend: function (xhrObj) {
// Request headers
xhrObj.setRequestHeader(
"Ocp-Apim-Subscription-Key",
"ef4ed92186214c868a59d97c3b353661"
);
},
type: "GET",
// Request body
data: "{body}",
})
.done(function (data) {
console.log(data);
document.getElementById("data").innerHTML = data.results;
})
.fail(function () {
alert("error");
});
});
console.log(data);
- HTML 页面
<html>
<head>
<title>JSSample</title>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.0/jquery.min.js"></script>
<script src="main.js"></script>
</head>
<body>
<div id="data"></div>
</body>
</html>
【问题讨论】:
-
永远不要发布真正的 API 密钥。并且不要一次问多个问题。
-
根据其名称
data.results将是“某物”的列表 -> 使用循环。 -
API 响应是一个对象数组,而不是 HTML。将其设置为 innerHTML 会强制将其转换为一个字符串,从而为您提供
[object Object],[object Object],[object Object],... -
不客气 :) (再次链接,以防它会在下面消失:jsfiddle.net/khrismuc/d1jragco)
标签: javascript html xmlhttprequest