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里面生效,求解。 展开
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里面生效,求解。 展开
展开全部
你好!
由于你的ajax请求是异步发生的···
所以在没有使用alert()的时候,data还没有传回值。
解决这个问题的办法就是设置ajax请求为同蔽野步请宏高喊求。
$.post()函数好像没有设置同步/异步的参数。
改用$.ajax()函数吧念仔,其中设置 async : false 为同步方式。默认此项为true,即异步方式。
----------------------------------------------------------------------------------------------
由于你的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?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询