如果我在 openshift origin 上多次调用相同的 rest Api,为什么我会得到 readystate undefined 和 status 0?
Why I get readystate undefined and status 0 if I call same rest Api multiple times on openshift origin?
当我多次调用相同的 API 并快速调用它时,我得到未定义的就绪状态和状态 0 作为响应。我的网页上有用于调用 api 的按钮,如果我在点击时给出间隙,例如3 秒后,api 工作正常。我检查了后端 openAPI (swagger) rest 服务,即使我快速调用它也能正常运行。
所以我尝试对 readystate 进行一些测试,有趣的是,当 readystate 的输出为 "undefined" 时,readystate == 4 上的 if 条件有效并给出输出 "undefined" 和状态“ 0”。看最后一个else if条件。[=12=]
但主要问题是为什么在后端工作正常时我得到 undefined ?如果延迟调用 api 也能正常工作?添加延迟很难,因为最终用户可以单击屏幕上的按钮,而且我也不希望出现不必要的延迟。
function getDocking(url,callBackFunction,btnId){
var xmlhttp = new XMLHttpRequest();
var response;
xmlhttp.onreadystatechange = function()
{
if (this.readyState == 4 && this.status == 200)
{
//Calling the callback function displayDocking once got response from server
callBackFunction(this,btnId);
}else if(this.readyState == 4 && this.status == 400)
{
document.getElementById('warning').style.display = "block";
document.getElementById("warning").innerHTML = this.responseText;
}
else if(this.readyState == 4)
{
alert("Received for button " + btnId + " Readystate: " + this.readystate + " Status: " + this.status)
callBackFunction(this,btnId);
}
};
xmlhttp.open( "POST", url , true );
xmlhttp.send(null);
//alert("Calling docking for Button " + btnId + " with URL " + url)
}
我正在使用 openshift origin,路由限制导致请求超时。我编辑了 yaml 文件并将其增加到 60s。默认值为 30 秒。
haproxy.router.openshift.io/timeout: 60s
当我多次调用相同的 API 并快速调用它时,我得到未定义的就绪状态和状态 0 作为响应。我的网页上有用于调用 api 的按钮,如果我在点击时给出间隙,例如3 秒后,api 工作正常。我检查了后端 openAPI (swagger) rest 服务,即使我快速调用它也能正常运行。
所以我尝试对 readystate 进行一些测试,有趣的是,当 readystate 的输出为 "undefined" 时,readystate == 4 上的 if 条件有效并给出输出 "undefined" 和状态“ 0”。看最后一个else if条件。[=12=]
但主要问题是为什么在后端工作正常时我得到 undefined ?如果延迟调用 api 也能正常工作?添加延迟很难,因为最终用户可以单击屏幕上的按钮,而且我也不希望出现不必要的延迟。
function getDocking(url,callBackFunction,btnId){
var xmlhttp = new XMLHttpRequest();
var response;
xmlhttp.onreadystatechange = function()
{
if (this.readyState == 4 && this.status == 200)
{
//Calling the callback function displayDocking once got response from server
callBackFunction(this,btnId);
}else if(this.readyState == 4 && this.status == 400)
{
document.getElementById('warning').style.display = "block";
document.getElementById("warning").innerHTML = this.responseText;
}
else if(this.readyState == 4)
{
alert("Received for button " + btnId + " Readystate: " + this.readystate + " Status: " + this.status)
callBackFunction(this,btnId);
}
};
xmlhttp.open( "POST", url , true );
xmlhttp.send(null);
//alert("Calling docking for Button " + btnId + " with URL " + url)
}
我正在使用 openshift origin,路由限制导致请求超时。我编辑了 yaml 文件并将其增加到 60s。默认值为 30 秒。
haproxy.router.openshift.io/timeout: 60s