代码:var req;function createXMLHttpRequest() {
if (window.XMLHttpRequest) {
req = new XMLHttpRequest();
} else {
if (window.ActiveXObject) {
req = new ActiveXObject("Microsoft.XMLHTTP");
} else {
alert("\u4e0d\u80fd\u521b\u5efaXMLHttpRequest\u5bf9\u8c61!");
}
}
}
function processHomeAddress1() {
var city = document.f1.city;
city.options.length = 0;
if (req.readyState == 4 && req.status == 200) {
var s = req.responseText;
var addrArray = s.split(":");
city.options[0] = new Option("\u57ce\u5e02", "0");
for (var i = 0; i < addrArray.length; i++) {
var cityArray = addrArray[i].split("x");
city.options[i] = new Option(cityArray[1], "" + cityArray[0]);
//alert(addrArray[i]);
}
}
}
function homeAddress1() {
var province = document.getElementById("province1");
var provinceVal = province.value;
if (req == null) {
createXMLHttpRequest();
}
req.onreadystatechange = processHomeAddress1;
req.open("GET", "cityList.html?id=" + provinceVal+"&"+new Date().getTime(), true);
req.setRequestHeader("If-Modified-Since","0");
req.send(null);
}
第一次发送异步请求,页面能正常显示返回的结果,第二次的时候,后台运行了第二次的请求,但是回调函数没有运行,结果不能显示,请高手解答!

解决方案 »

  1.   

    req.open("GET", "cityList.html?id=" + provinceVal+"&"+new Date().getTime(), true);get会有缓存的,楼主试试post方法?
      

  2.   

    改成POST依然不行,请高手指教
      

  3.   

    req.onreadystatechange = processHomeAddress1;
    req.open("POST", "cityList.html?id=" + provinceVal+"&t="+new Date().getTime(), true);
    req.send(null);
      

  4.   

            req.open("POST", "cityList.html", true);
    req.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
    req.send("pid=" + provinceVal+"&t="+new Date().getTime());
            依然不行!
      

  5.   

    用jquery吧, 原始的东西实在太难受了. 
    $.post("cityList.html?id=" + provinceVal, function(data){
        alert(data);  //传回来的数据
    });前面再导入 jquery的.js文件就好了. 
    简洁优雅