Javascript 无法显示responseJson的结果
所以,问题是我似乎无法理解为什么这个函数不能正常工作。这是我在国家公园做的一个API。我想也许另一双眼睛会注意到一些我没有注意到的东西。我编程时间不长,把一切都当作一次学习经历 提前谢谢 我试过很多方法,但似乎没有一种是正确的。我是编程新手Javascript 无法显示responseJson的结果,javascript,jquery,Javascript,Jquery,所以,问题是我似乎无法理解为什么这个函数不能正常工作。这是我在国家公园做的一个API。我想也许另一双眼睛会注意到一些我没有注意到的东西。我编程时间不长,把一切都当作一次学习经历 提前谢谢 我试过很多方法,但似乎没有一种是正确的。我是编程新手 function showResults(responseJson, params) { $('.results-list').empty(); let html = ''; for (let i = 0; i < responseJson
function showResults(responseJson, params) {
$('.results-list').empty();
let html = '';
for (let i = 0; i < responseJson.data.length; i++) {
const park = responseJson.data[i];
const description = park.description;
const name = park.name;
const url = park.url;
const address = park.directionInfo;
html += `
<li><h3>${name}</h3>
<p>Description: ${description}</p>
<p>Link: <a href="${url}">${URL}</a></p>
<p>Address: ${address}</p>
</li>`;
console.log('ugh');
}
$('.results-list').html(html);
$('.results-page').removeClass('hidden');
}
function parkResults(query, highResult = 10) {
highResult -= 1;
const params = {
api_key: apiKey,
limit: highResult,
stateCode: query
};
const queryString = formatQueryParams(params);
const url = searchURL + '?' + queryString;
fetch(url)
.then(response => {
if (response.ok) {
return response.json();
}
throw new Error(response.statusText);
})
.then(responseJson => showResults(responseJson, query))
.catch(err => {
$('.error-message').text(`Error:${err.message}`);
console.log('?');
});
}
函数显示结果(responseJson,params){
$('.results list').empty();
让html='';
for(设i=0;i${name}
描述:${Description}
链接:
地址:${Address}
`;
console.log('ugh');
}
$('.results list').html(html);
$('.results page').removeClass('hidden');
}
函数parkResults(查询,highResult=10){
高结果-=1;
常量参数={
api_密钥:api密钥,
极限:高结果,
状态代码:查询
};
const queryString=formatQueryParams(params);
constURL=searchURL+'?'+queryString;
获取(url)
。然后(响应=>{
if(response.ok){
返回response.json();
}
抛出新错误(response.statusText);
})
.然后(responseJson=>showResults(responseJson,query))
.catch(错误=>{
$('.error message').text(`error:${err.message}`);
console.log('?');
});
}
根据console.log和,函数工作不正常,但未显示任何错误。所以,我有点迷路了。我只是希望函数能正常工作。这段代码工作正常。我已经将代码简化为其他人可以使用和复制的代码。
fetch(…)
看起来不错,因此我建议您查看URL和输出格式,以了解是否存在漏洞
注意,我已经删除了所有范围声明以及多行字符串格式(倒勾)。您可以根据需要随意添加它们
<html>
<body>
<p id="results-list">Please wait...</p>
<script>
function showResults(json) {
var element = document.getElementById('results-list');
element.innerHTML = '';
var html = '';
for (var i = 0; i < json.data.length; i++) {
var park = json.data[i];
html += '<li><h3>' + park.name + '</h3>' +
'<p>Description: ' + park.description + '</p>' +
'<p>Link: <a href="' + park.url + '">' + park.url + '</a></p>' +
'<p>Address: ' + park.directionInfo + '</p>' +
'</li>';
}
element.innerHTML = html;
}
function fetchPark() {
var url = 'https://developer.nps.gov/api/v1/parks?parkCode=acad&api_key=SECRET_YOU_CAN_GET_ONE_AT https://www.nps.gov/subjects/developer/get-started.htm';
fetch(url)
.then(response => {
if (response.ok) return response.json();
})
.then(json => showResults(json))
.catch(err => { console.error(err); });
}
fetchPark();
</script>
</body>
</html>
请稍候
函数showResults(json){
var元素=document.getElementById('results-list');
element.innerHTML='';
var html='';
for(var i=0;i'+park.name+''+
“说明:”+park.Description+“”+
“链接:”+
“地址:”+park.directionInfo+“”+
“”;
}
element.innerHTML=html;
}
函数fetchPark(){
var url='1〕https://developer.nps.gov/api/v1/parks?parkCode=acad&api_key=SECRET_YOU_CAN_GET_ONE_AT https://www.nps.gov/subjects/developer/get-started.htm';
获取(url)
。然后(响应=>{
if(response.ok)返回response.json();
})
。然后(json=>showResults(json))
.catch(err=>{console.error(err);});
}
fetchPark();
输出为:
阿卡迪亚
描述:阿卡迪亚国家公园保护着世界上最高的自然美景
沿着美国大西洋海岸线的岩石岬角
拥有高度生物多样性、清洁的空气和水以及丰富的文化资源的栖息地
遗产每年,超过330万人探索上述七座山峰
1000英尺,158英里的远足小径,45英里的运输道路,16英尺
石桥
链接:
地址:未定义
此外,还要注意代理或防病毒等奇怪的东西。当没有得到预期的响应时,应该排除任何可以拦截HTTP流量的行为。此代码工作正常。我已经将代码简化为其他人可以使用和复制的代码。
fetch(…)
看起来不错,因此我建议您查看URL和输出格式,以了解是否存在漏洞
注意,我已经删除了所有范围声明以及多行字符串格式(倒勾)。您可以根据需要随意添加它们
<html>
<body>
<p id="results-list">Please wait...</p>
<script>
function showResults(json) {
var element = document.getElementById('results-list');
element.innerHTML = '';
var html = '';
for (var i = 0; i < json.data.length; i++) {
var park = json.data[i];
html += '<li><h3>' + park.name + '</h3>' +
'<p>Description: ' + park.description + '</p>' +
'<p>Link: <a href="' + park.url + '">' + park.url + '</a></p>' +
'<p>Address: ' + park.directionInfo + '</p>' +
'</li>';
}
element.innerHTML = html;
}
function fetchPark() {
var url = 'https://developer.nps.gov/api/v1/parks?parkCode=acad&api_key=SECRET_YOU_CAN_GET_ONE_AT https://www.nps.gov/subjects/developer/get-started.htm';
fetch(url)
.then(response => {
if (response.ok) return response.json();
})
.then(json => showResults(json))
.catch(err => { console.error(err); });
}
fetchPark();
</script>
</body>
</html>
请稍候
函数showResults(json){
var元素=document.getElementById('results-list');
element.innerHTML='';
var html='';
for(var i=0;i'+park.name+''+
“说明:”+park.Description+“”+
“链接:”+
“地址:”+park.directionInfo+“”+
“”;
}
element.innerHTML=html;
}
函数fetchPark(){
var url='1〕https://developer.nps.gov/api/v1/parks?parkCode=acad&api_key=SECRET_YOU_CAN_GET_ONE_AT https://www.nps.gov/subjects/developer/get-started.htm';
获取(url)
。然后(响应=>{
if(response.ok)返回response.json();
})
。然后(json=>showResults(json))
.catch(err=>{console.error(err);});
}
fetchPark();
输出为:
阿卡迪亚
描述:阿卡迪亚国家公园保护着世界上最高的自然美景
沿着美国大西洋海岸线的岩石岬角
拥有高度生物多样性、清洁的空气和水以及丰富的文化资源的栖息地
遗产每年,超过330万人探索上述七座山峰
1000英尺,158英里的远足小径,45英里的运输道路,16英尺
石桥
链接:
地址:未定义
此外,还要注意代理或防病毒等奇怪的东西。当没有收到预期的响应时,应该排除任何可以拦截HTTP流量的内容。您是否检查了原始响应数据和showResults函数?不确定response.json是什么。它显示的是200代码。我将添加showResults函数的更多代码将名为params的参数更改为另一个名称,因为它与关键字重复。是否看到
ugh
日志消息?