AJAX代码回调函数callback()没有执行

emon123 emon123 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
写的这个ajax实现联动的代码时,在sendRequest()函数中执行xmlHttpRequest.onreadystatechange=callback这句跳入callback()函数后,打印alert("call in")什么都没有,表示这个函数根本都没有被执行?不知道哪错了。请大家帮忙看看,在线等!~~

<script type="text/javascript">

//窗口打开时加载
window.onload = function(){
document.all.city.options[document.all.city.options.length]=new Option("武汉","1")
document.all.city.options[document.all.city.options.length]=new Option("荆州","2")
document.all.city.options[document.all.city.options.length]=new Option("襄樊","3")
document.getElementById("city").selectedIndex=0;
}


var xmlHttpRequest;
//--创建xmlHttpRequest对象
function createXmlHttpRequest(){
if(window.xmlHttpRequest){
xmlHttpRequest = new XmlHttpRequest();
} else if(window.ActiveXObject){
xmlHttpRequest = new ActiveXObject("Miscorosoft.XMLHTTP");
}
if(!xmlHttpRequest){
alert("创建对象失败");
}
alert("createXmlHttpRequest");
}

createXmlHttpRequest();

//回调函数
function callback(){
alert("call in"); //这句没有被打印。这个函数没有被执行?????
if(xmlHttpRequest.readyState==4){
if(xmlHttpRequest.status==200){
alert("callback");
window.alert(xmlHttpRequest.responseText);
}else{
alert("服务器"+xmlHttpRequest.status+"错误");
}
}
}

//当对象创建成功后,服务器的请求操作
function sendRequest(func, url, param){
alert("sendRequest");
xmlHttpRequest.onreadystatechange=callback;
alert("sendRequest12");
xmlHttpRequest.open("POST",url,true);
xmlHttpRequest.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
xmlHttpRequest.send(param);

}

function queryCity(id){
alert(id);
sendRequest(callback,"<%=path%>/querycity.do","id="+id); //这里执行出问题
alert("queryCity"); //这里没有执行
}

//调用服务器端返回的数据,进行显示
function display(){
document.getElementById ("city").innerHTML = xmlHttpRequest.responseText;
}
</script>
...全文

相关推荐

javascript 回调函数详解

回调函数定义 回调函数就是一个通过函数指针调用的函数。如果你把函数的指针(地址)作为参数传递给另一个函数,当这个指针被用为调用它所指向的函数时,我们就说这是回调函数。回调函数不是由该函数的实现方直接调用,而是在特定的事件或条件发生时由另外的一方调用的,用于对该事件或条件进行响应。 在JavaScript中,回调函数具体的定义为:函数A作为参数(函数引用)传递到另一个函数B中,并且这个函数B执行函数A。我们就说函数A叫做回调函数。如果没有名称(函数表达式),就叫做匿名回调函数。因此callback 不一定用于异步,一般同步(阻塞)的场景下也经常用到回调,比如要求执行某些操作后执行回调函数。 例子

weixin_38698943

ajax回调函数参数传递正确方法

属性方法是可以带参数: 代码如下: function ClassX(name) { this.name = name; ClassX.prototype.show = function (param) { alert&#40;this.name + ” ” + param&#41;; }; } var o = new ClassX(“name”); o.show(“param”);//name param 但是,上面是虽然是直接在函数签名中定义了参考,如果不是自己调用o.show(‘param’)时,而是通过其他函数回调传入时,就不一定好使了,因为别人在调用此方法时不一定给你传入此参,比如在使用ajax时

weixin_38649356

jQuery Ajax Post 回调函数不执行问题的解决方法

本文是小编给大家带来的jQuery Ajax Post 回调函数不执行的原因及解决方法,在本文最下面还给大家附加jquery Ajax 不执行回调函数success的原因,这两个问题都非常多见,感兴趣的朋友一起看下吧

weixin_38723559

jquery ajax abort()的使用方法

最近在做一个项目,里面需要js 异步请求的时候,把上一次的的请求取消

weixin_38552871

jQuery中Ajax的get、post等方法详解

前面我们讲述了jQuery中ajax的load()方法,小伙伴们反应非常好,今天我们就来讲解下jQuery中Ajax的get、post等方法,希望大家同样能够喜欢。

weixin_38600696
评论 6
收藏 已收藏
分享
返回顶部
emon123
Ajax 52,778 成员 25,334 内容