当 PHP 头为 json 的时候,jquery 的回调函数会有问题,有人遇到过吗?

2014-05-15 19:27:41 +08:00
 firhome
当php的头为json的时候

js代码:
var a = 1;

$ajax post 那个php接口以后

回调函数设置 a = 2;

但是a 还是 1;


有人知道为什么吗?

<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>test jq ajax</title>
<script src="jquery.js"></script>
</head>
<body>
<a href="###" id="abc">123</a>
<a href="###" id="bbb">2</a>
<script type="text/javascript">
$(document).ready(function(){
var a;
$("#bbb").bind('click',function(){
$.ajax({
url:'1.php',
type:'post',
data:{},
success:function(){
a = {a:1};
console.log(a);
alert(1)
}
})
});

$('#abc').bind('click',function(){
console.log(a);
})

});
</script>
</body>
</html>
2593 次点击
所在节点    程序员
8 条回复
belin520
2014-05-15 19:29:05 +08:00
$.getJSON
firhome
2014-05-15 19:29:46 +08:00
@belin520 为什么呢?和ajax 什么区别
firhome
2014-05-15 19:32:44 +08:00
@firhome 试了,不行
qiayue
2014-05-15 19:36:41 +08:00
$.post(
url,
{k:v},
function (){

},
'json'
);
df
2014-05-15 20:35:27 +08:00
上面相关代码替换成:
success:function(data){
console.log(data);
}

看看服务器返回的数据是否正确先。


不知道这些是干嘛用的,你没说清楚,好像多余:
1.
<a href="###" id="abc">123</a>

2.
$('#abc').bind('click',function(){
console.log(a);
})
df
2014-05-15 20:45:38 +08:00
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>test jq ajax</title>
<script src="js/jquery-1.7.2.min.js"></script>
</head>
<body>
<a href="###" id="abc">123</a>
<a href="###" id="bbb">2</a>
<script type="text/javascript">
$(document).ready(function(){
var a;

$('#abc').bind('click',function(){
console.log(a);
})

$("#bbb").bind('click',
function(){
$.ajax({
url:'1.php',
type:'post',
data:{},
success:function(data){
a = data.n; // $json = '{"n":2}';
console.log(a);
alert(1);
}
})
});
});
</script>
</body>
</html>
123123
2014-05-15 23:27:25 +08:00
只看到了代码里写着 a = {a:1};
a = 2 在哪里?
veapon
2014-05-16 14:21:44 +08:00
是JS变量作用域的问题吧。
到了success回调的时候,a已经不再ready的上下文范围了。把a的声明放到$(document).ready()外试试。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/112728

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX