怎么把jquery ajax成功返回的数据设置为共有的,象下面的
var a2238color = "";
$.ajax({
url:'RequestServlet',
type:'GET',
async:false,
success: function(data){
a2238color=data.w;
}
});
}
alert(a2238color);
结果为空,求答案
$.ajax方法是异步的,你这样估计是还未执行完成就alert了。
var a2238color = "";
$.ajax({
url:'RequestServlet',
type:'GET',
async:false,
success: function(data){
a2238color=data.w;
t();
}
});
}
function t(){
alert(a2238color);
}
这样试试
谢谢了,可以了
加个设置,dataType="json"
刚接触,不怎么理解
是这样的吗,为什么还是一样,alert为空
$.ajax({
url:'RequestServlet',
type:'GET',
async:false,
dataType:"json",
success: function(data){
a2238color=data.w;
}
});
@闲游wep开发:
后台:
Response.Write("{\"w\":11}");
先改成这样试下
你要检查返回的data有没有数据,在检查data.w有没有数据。如果没有应该你传输的数据有问题。还有就是执行时机的问题,ajax是异步执行,在的alert在提交请求之后就执行,这个时候可能ajax还没执行完,所以数据还是原来的空数据,这个你可以把a2238color改为其他如“123”试试,如果还是123说明你的执行时机不对,要在ajax执行成功之后再弹出提示。
对,却是是执行时机不对,但我觉得ajax反应了,那怎么办
@闲游wep开发: 写一个函数在内部调用success: function(data){
a2238color=data.w;
fun();
} 在这个函数里处理你的逻辑。你的弹出的基本条件是要ajax成功执行之后再执行你要的逻辑。所以你要在ajax响应之后在处理你要的逻辑。不能想当然。
不行,虽然那样可以了,但还是在ajax里面,一旦不在了,就还是空,我是这样的做的
window.onload = function() {
$.ajax({
url:'RequestServlet',
type:'GET',
//async:false,
dataType:"json",
success: function(data){
w=data.w;
t();
}
});
}
function t(){
alert(w);
}
//alert(w);
document.write("<img style=\"width:' + w + 'px;height:' + h + 'px\" src=\"' + url + '\" />");
你的alert在你ajax返回之前就已经做完,你说会有值吗?