jQuery AJAX 回调函数的参数使用问题

$("#confirm").click(function(){if(comm_title.title.value=="")alert("请输入标题!")else$.pos... $("#confirm").click(function(){
if(comm_title.title.value=="")
alert("请输入标题!")
else
$.post(
'do.php?t=c&a=n',
{title:comm_title.title.value},
function(data){
alert(data);
var add="comm_detail.php?id=" + data;
$("#comm").load(add);
});
});
如图所示,发生click事件后,alert()可以正常工作并弹出正确内容,但是捕获流量却发现实际load的地址是comm_detail.php?id=。也就是说data在字符串里面并没有生效,后来我经过测试确认data无法用+符号添加到字符串,只能在alert里面生效,求解。
展开
 我来答
阿刚炖蛋
2013-01-21 · TA获得超过3004个赞
知道大有可为答主
回答量:1789
采纳率:92%
帮助的人:994万
展开全部
你好!

由于你的ajax请求是异步发生的···
所以在没有使用alert()的时候,data还没有传回值。

解决这个问题的办法就是设置ajax请求为同步请求。
$.post()函数好像没有设置同步/异步的参数。
改用$.ajax()函数吧,其中设置 async : false 为同步方式。默认此项为true,即异步方式。

----------------------------------------------------------------------------------------------
更多追问追答
追问
...
else
$.ajax({
url:"do.php?t=c&a=n",
type:"POST",
data:{title:comm_title.title.value},
async:false,
success:function(data){alert(data);$("#comm").load("comm_detail.php?id=" + data);}
});
我把script改成了如上,可是仍旧只是alert了data,但是流量里面是comm_detail.php?id=
追答
alert(data)是个什么东西?
返回的data是text还是json?
戏肖告O
2013-01-21 · TA获得超过441个赞
知道小有建树答主
回答量:331
采纳率:28%
帮助的人:183万
展开全部
需不需要指定返回结果类型,我一般用json
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式