为什么ajax的代码还没执行完,下面的代码就开始执行了

chuju997 2015-03-26 09:52:53
比如说:
function MyFun(){

$.ajax({
type: "POST",
url: "/Home/GetData",
data: " " ,
success: function (responseData) {

$("#myInput").val(responseData);

}//end success
});//end ajax

alert( $( "myInput").val() ) ;

}


为什么有时候没有执行完成ajax,就会执行alert????
导致alert出来的内容是空的

为什么代码不是从上倒下执行啊???
...全文
520 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
sadufhoueis123 2015-03-30
  • 打赏
  • 举报
回复
function MyFun(){ $.ajax({ type: "POST", url: "/Home/GetData", data: " " , success: function (responseData) { $("#myInput").val(responseData); alert( $( "myInput").val() ) ; }//end success });//end ajax } 这样就行了。 ajax的运行顺序: ajax之前代码-》开启ajax,发送请求-》ajax之后的代码-》ajax之后的代码-》ajax之后的代码…… ajax请求发送之后,当接收到反馈(success/error)后,立即调用success或者error,然后继续ajax之后的代码-》ajax之后的代码-》ajax之后的代码…… 所以alert放在success里面,就可以在收到ajax结果后执行了
蚂蚁上树 2015-03-27
  • 打赏
  • 举报
回复
引用 5 楼 hxtgirq710 的回复:
async:false 同步执行 就会重上往下了 或者你把ajax完成后的操作放到回调 里面去 (success,error,complete)
+1
fengyun817 2015-03-26
  • 打赏
  • 举报
回复
$.ajax()加上这个参数(同步): async: false
xuzuning 2015-03-26
  • 打赏
  • 举报
回复
async 类型:Boolean 默认值: true。默认设置下,所有请求均为异步请求。如果需要发送同步请求,请将此选项设置为 false。 注意,同步请求将锁住浏览器,用户其它操作必须等待请求完成才可以执行。
chuju997 2015-03-26
  • 打赏
  • 举报
回复
引用 1 楼 xuzuning 的回复:
AJAX即“Asynchronous Javascript And XML”(异步JavaScript和XML) 既然是异步,那自然就不按次序来了
请问要怎么让ajax执行完成之后再执行alert啊??? 我不想把alert写在success里面, alert代表这我实际代码中另外一个函数,这个函数是根据 myInput 的内容工作的
xuzuning 2015-03-26
  • 打赏
  • 举报
回复
AJAX即“Asynchronous Javascript And XML”(异步JavaScript和XML) 既然是异步,那自然就不按次序来了
冰糖-雪梨 2015-03-26
  • 打赏
  • 举报
回复
async:false 同步执行 就会重上往下了 或者你把ajax完成后的操作放到回调 里面去 (success,error,complete)

52,797

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 Ajax
社区管理员
  • Ajax
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧