因在JQuery中ajax默认为异步请求,所以在执行你代码中的$.get("test.ashx", function (data) { zNodes = data; alert(zNodes); });的同时也执行了alert(zNodes);代码,但外面的alert执行的时候,里面的zNodes = data还未执行,所以就会出现外面的弹出为“”值。解决方案为如下
在全局设置:
1 $.ajaxSetup({ 2 async : false 3 });
然后再使用post或get方法。此原理为将请求设置为同步,代码逐个执行,那么你外面的alert就会弹出值了!
ajax 肯定有延迟的 外面的alert弹出来 zNodes都没赋值上 所以就没内容
异步的操作,你的ajax请求还没有结束,你的外面的alert就弹出来了,怎么会有效果呢?