Javascript:我是否正确使用onreadystatechange?
请记住,我对JavaScript语法非常陌生,所以请耐心等待 我试图使用多个Javascript:我是否正确使用onreadystatechange?,javascript,ajax,Javascript,Ajax,请记住,我对JavaScript语法非常陌生,所以请耐心等待 我试图使用多个onreadystatechange作为捕获我从express返回的内容的承诺,但每次我这样做时,它们都会被调用。这是我的密码: var ready = function(){ xhr.open('GET', 'getallbeertypes'); xhr.send(null); xhr.onreadystatechange = function () { var parent
onreadystatechange
作为捕获我从express返回的内容的承诺,但每次我这样做时,它们都会被调用。这是我的密码:
var ready = function(){
xhr.open('GET', 'getallbeertypes');
xhr.send(null);
xhr.onreadystatechange = function () {
var parent = document.getElementById('recipes');
var docfrag = document.createDocumentFragment();
if(xhr.status == 200){
var beerTypes = JSON.parse(xhr.responseText);
//loop through beerTypes to append a button to each list item
for (var beer = 0; beer < beerTypes.length; beer++){
//create necessary elements
var li = document.createElement('li');
var button = document.createElement('BUTTON');
//set text content to list item
li.textContent = beerTypes[beer].alias;
//append list item to button
button.appendChild(li);
// add onclick attribute
button.setAttribute("name", beerTypes[beer]._id);
button.setAttribute("onclick", "moreInfo(this.getAttribute('name'))");
//append button to document fragment
docfrag.appendChild(button);
}
//display on DOM element
parent.appendChild(docfrag);
}else{
// console.log(JSON.parse(xhr.responseText));
var header = document.createElement('h1');
header.textContent = "Something went wrong. Please try again later.";
docfrag.appendChild(header);
parent.appendChild(header);
}
}
}
ready();
我希望onclick
属性只能运行moreInfo
函数
每当我单击其中一个按钮时,ready
函数中的else
语句都会以某种方式运行,并显示出了问题。请稍后在屏幕上重试
我唯一能建立的连接是onreadystatechange
,但我真的不知道这是否就是它
如何/为什么调用另一个函数?如何停止它?非常感谢您的帮助。您应该检查请求的状态。为此,请使用readyState属性。有5个状态,从0到4的整数,最后一个是4 大概是这样的:
if (xhr.readyState == 4 && xhr.status == 200){
...
}
检查示例。您应该检查请求的状态。为此,请使用readyState属性。有5个状态,从0到4的整数,最后一个是4 大概是这样的:
if (xhr.readyState == 4 && xhr.status == 200){
...
}
检查示例。明白了。谢谢你处理我的新手问题,明白了。谢谢你处理我的新手问题。