我的页面上有一个脚本,它接收来自 Flickr 的图像的原始 JSON 数据。我想使用 readyState 在它发生时提供实时反馈。
我当前的代码能够做的是检查 readyState 是 4 并且状态是 200。当这是真的时,它将原始 JSON 数据添加到页面中。
代码:
function sendRequest (request) {
//Request is the URL string to flickr containings tags entered by the user.
x = new XMLHttpRequest();
x.open("GET", request,false);
x.send(null);
if (x.readyState==4 && x.status==200)
{
document.getElementById("resultsContainer").innerHTML="Raw JSON Data: <br>"+x.responseText+"<br><br>";
}
}
如您所见,它将收到的值添加回 resultsContainer div。我试图在同一个 div 中添加反馈,如下所示:
if(x.readyState==3){
document.getElementById("resultsContainer").innerHTML="Processing Request";
}
但它没有效果。我想知道为什么它成功识别就绪状态 4,而不是 3?
我知道有一个 onreadystatechange 函数并尝试使用它,但它从未执行任何代码,即没有工作。
在请求发生时如何执行操作 (readyState == 3)?
编辑:
CURRENT CODE:
function sendRequest (request) {
x = new XMLHttpRequest();
x.open("GET", request,true);
x.send();
x.onreadystatechange = function () {
if (x.readyState==4 && x.status==200){
document.getElementById("resultsContainer").innerHTML="success <br>"+x.responseText;
}
if(x.readyState==3){
document.getElementById("getIms").value="Processing";
}
}
}
仅当返回值并将其添加到结果容器中时,元素 getIms 的值才会更改为处理。