AJAX代码回调函数callback()没有执行
<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 不一定用于异步,一般同步(阻塞)的场景下也经常用到回调,比如要求执行某些操作后执行回调函数。 例子
ajax回调函数参数传递正确方法
属性方法是可以带参数: 代码如下: function ClassX(name) { this.name = name; ClassX.prototype.show = function (param) { alert(this.name + ” ” + param); }; } var o = new ClassX(“name”); o.show(“param”);//name param 但是,上面是虽然是直接在函数签名中定义了参考,如果不是自己调用o.show(‘param’)时,而是通过其他函数回调传入时,就不一定好使了,因为别人在调用此方法时不一定给你传入此参,比如在使用ajax时
jQuery Ajax Post 回调函数不执行问题的解决方法
本文是小编给大家带来的jQuery Ajax Post 回调函数不执行的原因及解决方法,在本文最下面还给大家附加jquery Ajax 不执行回调函数success的原因,这两个问题都非常多见,感兴趣的朋友一起看下吧
jquery ajax abort()的使用方法
最近在做一个项目,里面需要js 异步请求的时候,把上一次的的请求取消
jQuery中Ajax的get、post等方法详解
前面我们讲述了jQuery中ajax的load()方法,小伙伴们反应非常好,今天我们就来讲解下jQuery中Ajax的get、post等方法,希望大家同样能够喜欢。


