文章标签 ‘AJAX’
用jquery一直都是用的异步传输,习惯了,今天在做表单提交验证一个字段的惟一性的时候,同样是用了异步,问题就出现了。
var checkwap=function(){
var total;
$.ajax({
url:’bsmajax.php?type=checkwap’,
type:’GET’,
async:false,//原来是true,
cache:false,
data :{wapnum:$(’input[id=wapnum]‘).val()},
dataType :’json’,
success :function(json){
total=json.total;
}
});
return total;
};
alert(checkwap());//开始的时候怎么也得不到值,以为是jquery关于变量作用域的访问问题
多加了几个alert();后才觉悟,因为是异步的,alert(checkwap());先执行了,等ajax成功返回数据后total才有值。
因为在表单提交的验证是要实时的,所以就 async:false 了,变成同步的。
当我以为是变量作用域问题时,在GOOGLE里搜索时,也有人犯这样的迷糊,现在记下来。
本文原创,转载请注明出处,谢谢合作!
AJAX 关于这个技术的书和文章,我不知道看了多少,一直没有用过。
PigBlog主要功能里就只有发表评论了,想想就用AJAX的吧,开始操刀AJAX,下面是我用这个技术的时候的学习心得。
从整体上来说,就是在JS里程序然后,通过DOM操作获得数据,发送给后台的PHP文件,PHP文件处理,返回结果,JS再接收,再通过DOM操作显示数据。
思路就是这样,其中难点是JS文件的编写。这整个过程中,我用到的一些东西,XMLHttpRequest,XML,DOM.
第一步:建立XMLHttpRequest,怎么建立就不说了,网上多的方法,我只把我的代码发出来
JAVASCRIPT
//创建XMLHTTP
function CreateXMLHttp(){
var request=false;
try{
if(window.XMLHttpRequest){
request=new XMLHttpRequest();
/*
* 如果服务器的响应没有XML mime-type header,某些Mozilla浏览器可能无法正常工作。
* 为了解决这个问题,如果服务器响应的header不是text/xml,可以调用其它方法修改该header。
* From:http://leexuan.blogbus.com/logs/1935602.html
* */
if(request.overrideMimeType){
request.overrideMimeType(‘text/xml’);
}
}
else if(window.ActiveXObject){
var i=0;
var xmlarray=[
'Microsoft.XMLHTTP',
'MSXML.XMLHTTP',
'Msxml2.XMLHTTP.6.0',
'Msxml2.XMLHTTP.5.0',
'Msxml2.XMLHTTP.4.0',
'Msxml2.XMLHTTP.3.0',
'Msxml2.XMLHTTP'
];
var len=xmlarray.length;
for(i;i<len;++i){
try{
request=new ActiveXObject(xmlarray[i]);
// request.SetRequestHeader(’Content-Type’,’text/xml’);
request.SetRequestHeader(‘Content-Type’,‘UTF-8′);
break;
}
catch(e){
request=false;
}
}
}
else{
alert(‘你的浏览器不支持AJAX’);
}
}
catch(e){
request=false;
}
return request;
}









