请问ajax 如何同步调用?

ajax 如何同步调用


大话西游666
浏览 1692回答 3
3回答

月关宝盒

Ajax请求默认的都是异步的如果想同步 async设置为false就可以(默认是true)如果是jquery:123456 $.ajax({url: some.php,async: false,success : function(){}});如果是原生的js:1xmlHttp.open("POST",url,false);希望能帮到你~

qq_遁去的一_1

$.ajax({type:POST,//提交方式 url:"ftt_logchk.asp", data:{‘a’:1.'b':2}//你给后台传的数据为a和b后面跟的就是他两的值(这里就是传数据给后台!!!!!!)success: function(data){//这里的data就是你后台返回的值,没有就算了(前提是成功才会执行) } error: function(){//这里是报错后就会执行!!!你可以弹出友好提示! alert("我报错了,好好检查"); } } })

慕工程0101907

首先你的这个实现逻辑就有问题,怎么可能会想到用for 去做n次ajax提交呢,你得知道你现在上面写的这种ajax提交方式为异步方式,何为异步,就是当ajax请求发出后当前逻辑就认为你的这次请求完成了,当前逻辑会继续往下执行而不会去管你的这个ajax请求是否执行完并成功返回的,如你for了10次,那么for只会管执行10个ajax提交,因为ajax是异步方式,所以你在for里面无法控制你的这10次ajax是否都正常的执行并返回的,这10次ajax提交的返回是无序的。所以一般都不会用这样的逻辑来处理问题,如果实在非得要用这种逻辑,那么得将ajax请求方式改成同步方式,即将async:false 改成 async:true,这样就可能如你的预期,一个ajax执行完正常返回后才行下一个ajax,==================================================================哦,那是我记错咯,如果你实在要用这种实现逻辑的话,我倒建议你不要这么写,类似下面这种写法应该好处理些的:for (var i=0; i<9; i++){var post_data = new Array('rand':new Date().getMilliseconds())var post_retn = eval('('+ $.ajax({type:'post', data:post_data, url:'xxxxx&rand=' + new Date().getMilliseconds(), async:false}).responseText +')');alert(post_retn);}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java
Cocos2d-x