我有一个非常奇怪的问题 - 当你点击一个按钮时,我对一个从Web浏览器中获取数据并填充一些输入的轴web服务进行ajax调用。
然而,当我用数据填充输入后再次点击按钮时没有任何反应,我没有错误。只有当我删除ie9中的临时互联网文件时,我才能在输入中加载新数据。
这是单击按钮时执行的功能:
function fetchCompanyInfo() {
var xmlhttp = createXMLHttpRequest();
var request = "http://localhost:9090/verifydatabase/services/verifydatabase/getData";
xmlhttp.open("GET", request, true);
handleStateChangeFetchInfo(xmlhttp);
xmlhttp.send();
}
function handleStateChangeFetchInfo(xmlhttp) {
xmlhttp.onreadystatechange = function () {
if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
var xmlObj = xmlhttp.responseXML;
var textXML = xmlObj.documentElement.firstChild.firstChild.nodeValue;
if (window.DOMParser) {
parser = new DOMParser();
var xmlDoc = parser.parseFromString(textXML, "text/xml");
} else {
var xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
xmlDoc.async = false;
xmlDoc.loadXML(textXML);
}
var rows = xmlDoc.getElementsByTagName("row");
for (var i = 0; i < rows.length; i++) {
mycurrent_row = document.createElement("tr");
var cols = rows[i].getElementsByTagName("colunm");
for (var j = 0; j < cols.length; j++) {
if (cols[j].getAttribute("colname") == "biz_subject") {
document.getElementById("old_biz_subject").value = cols[j].getAttribute("colvalue");
document.getElementById("txbbiz_subject").value = cols[j].getAttribute("colvalue");
} else
if (cols[j].getAttribute("colname") == "company_type") {
document.getElementById("old_company_type").value = cols[j].getAttribute("colvalue");
document.getElementById("txbcompany_type").value = cols[j].getAttribute("colvalue");
} else
if (cols[j].getAttribute("colname") == "country") {
document.getElementById("old_country").value = cols[j].getAttribute("colvalue");
document.getElementById("txbcountry").value = "Р България";
} else
if (cols[j].getAttribute("colname") == "nace_code") {
document.getElementById("old_nace_code").value = cols[j].getAttribute("colvalue");
document.getElementById("txbnacecode").value = cols[j].getAttribute("colvalue");
}
}
}
pinCompanyLocation(document.getElementById("old_location").value);
}
}
}
答案 0 :(得分:2)
您的AJAX可能会被缓存吗?尝试在网址中添加时间戳:
xmlhttp.open("GET", request + "?timestamp=" + (+new Date), true);
答案 1 :(得分:0)
很难理解你正在尝试做什么,但是根据你的描述,当你有人点击按钮时,听起来你正试图从远程服务更新某些文本框中的值。看起来你的脚本实际上也在创建文本框。我怀疑第二次有人点击你的按钮时,它无法创建字段,因为它们已经存在于DOM中。我认为它可以在你“清除缓存”后起作用,因为你可能也在重新加载页面。