返回信息流var str;
$.post('test.do',{"param":param},function(data){
str=data;
});
alert(str);
//输出结果:undefined
这个问题怎么整?
为啥会是undefined?
我应该怎么做才能把data赋值给str?
这是一条镜像帖。来源:北邮人论坛 / www-technology / #14498同步于 2011/9/8
该镜像源已超过 30 天没有更新,可能在源站已被删除。
WWWTechnology机器人发帖
jquery用post请求数据回传的问题
cb
2011/9/8镜像同步10 回复
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
把alert放在function里面
【 在 cb (搓逼) 的大作中提到: 】
: var str;
: $.post('test.do',{"param":param},function(data){
: str=data;
: ...................
源代码是这样的
<a href="test.do" onclick="return check(this);">test</a>
<script type="text/javascript">
function check(obj){
var href=obj.href;
var str;
$.post('test.do',{"param":href},function(data){
if(data=="true") return ture;
else return false;
});
}
</script>
一开始我是这样写的,但是这样写没有作用,点击a标签后一定会跳转.
我想要实现的是经过check函数验证后,根据结果决定是否跳转,该怎么实现?
【 在 xw2423 的大作中提到: 】
: 把alert放在function里面
: 【 在 cb (搓逼) 的大作中提到: 】
: : var str;
: ...................
搞定了.
var str;
$.post('test.do',{"param":param},function(data){
str=data;
});
alert(str);
输出undefined的原因是ajax是异步调用的,post请求的回调函数和alert的执行顺序无法确定.
因为我是要到服务器端做验证,然后决定客户端是否跳转, 所以应该用同步请求.
将$.post换成了$.ajax, 然后将async设成false就ok了
额。。。同步就是会阻塞住
你把逻辑放在回调函数内,然后用window.location跳转就是了。。。
【 在 cb (搓逼) 的大作中提到: 】
: 搞定了.
: var str;
: $.post('test.do',{"param":param},function(data){
: ...................
但是这种要服务器端验证后再决定是否跳转的,而且boss说不能刷新页面的还有啥好的方法么?
【 在 polarwyp 的大作中提到: 】
: 尽量少用同步的ajax,万一网络不太通畅或者服务器反应慢了,浏览器还不是死翘翘的状态
: --
异步
【 在 cb 的大作中提到: 】
: 但是这种要服务器端验证后再决定是否跳转的,而且boss说不能刷新页面的还有啥好的方法么?
: 【 在 polarwyp 的大作中提到: 】
: : 尽量少用同步的ajax,万一网络不太通畅或者服务器反应慢了,浏览器还不是死翘翘的状态
: ...................
how to?
【 在 zzcc 的大作中提到: 】
: 异步
: 【 在 cb 的大作中提到: 】
: : 但是这种要服务器端验证后再决定是否跳转的,而且boss说不能刷新页面的还有啥好的方法么?
: ...................
$.post({
url:"xxxxx",
method:'post',
data : {x:1,y:2},
success:function(data){
if (data.result === 0){
// 结果正确 => 跳转
window.location.replace('你要跳到什么url,就填什么url吧');
}else
alert('你妹啊,填的不对,重填吧!')
}
});
【 在 cb 的大作中提到: 】
: var str;
: $.post('test.do',{"param":param},function(data){
: str=data;
: ...................