Jquery Ajax调用需要暂停吗?
我有一个问题,调用一个ajax命令..所以问题是,在ajax已经调用了PHP页面(并已经在数据库中插入数据后)..成功的ajax调用应该重定向页面的其他地方....这是代码:Jquery Ajax调用需要暂停吗?
$.ajax({
type: "POST",
dataType: "json",
url: "insertInfo.php",
timeout: 3000,
data: "name=" + myName + "&email=" + myEmail +
"&birthdate=" + myBirthdate + "&nickname=" +
myNickName + "&shirtcolor=" + myShirtColor + "&slogancolor=" +
mySloganColor + "&slogantext=" + mySloganText,
success: function(data)
{
if(data.operation=="completed")
{
window.location.href = "thank_you.php";
}
}
});
现在,当我把这个奇怪的事情发生了:
alert('test')
调用Ajax出现之前。如果我把它,当然会出现消息框,! ajax完美工作,连接到数据库并重定向页面。
如果我拿走了警报框,没有任何反应,数据库没有被修改,也没有发生重定向。
我不明白哪里可能是问题...我是否需要暂停ajax调用?
Thnak你很多关于每个理智的解释:)
如果($( '信息用户形式')。有效的()){
var myShirtColor = $('input[name="shirt"]').val();
var mySloganText = $('input[name="shirtText"]').val();
var mySloganColor = $('input[name="slogan"]').val();
var myName = $('input#name').val();
var myEmail = $('input#email').val();
var myBirthdate = $('input#birthdate').val();
var myNickName = $('input#nickname').val();
$.ajax({
type: "POST",
dataType: "json",
url: "insertInfo.php",
timeout: 3000,
data: "name=" + myName + "&email=" + myEmail + "&birthdate=" + myBirthdate + "&nickname=" + myNickName + "&shirtcolor=" + myShirtColor + "&slogancolor=" + mySloganColor + "&slogantext=" + mySloganText,
success: function(data){
if(data.operation=="completed")
{
window.location.href = "thank_you.php";
}
}
});
}
好,所以这是在jQuery的document.ready里面......所有这一切......只是在ajax调用之前存在于alertbox中的一种情况...... 谢谢大家对你的回应,即使我不知道你期望什么,我会试着看看bugzilla。
所做的测试也与萤火虫...
所以,用Firebug处于运行状态时,JAX将保存在数据库中的数据,并会重定向页面。 Witgh萤火虫接近,将只保存数据,而无需重新引导
在Chrome中甚至没有保存数据....
检查错误控制台和网络日志,看看发生了什么事情。另外一个可能的原因是,你正试图在DOM初始化之前从DOM获取输入值等。如果是这种情况,您可以将代码放入$(document).ready事件中。希望这有助于
谢谢你的快速响应.... – 2012-02-07 11:26:55
这是否解决了你的问题? – 2012-02-07 11:33:14
但如果我把一个警报箱的值从字符串的DOM(我应该发送到Ajax到数据库)的字符串,字符串是正确的....似乎警报框缓慢eveyrthing和阿贾克斯可以工作正常... – 2012-02-07 11:34:09
所以搜索和各种测试后,我发现,如果我把选项
异步:在Ajax调用假
,
它完美(我将测试在Firefox,Chrome浏览器完美的作品..)..
有谁明白为什么?......这将是很好知道....谢谢
看来THA你正在验证一个表单。确保您的表单提交听众返回false
它确实...否则我认为它不会与ajax调用之前的alertBox一起工作。但是,我真的很想知道为什么它应用async:false条件的原因... – 2012-02-09 16:18:02
确实发生了某些事情当你放置警报('内'); after window.location.href =“thank_you.php”; ? – FreeCandies 2012-02-10 08:32:05
var queryString = "name=" + myName + "&email=" + myEmail +
"&birthdate=" + myBirthdate + "&nickname=" +
myNickName + "&shirtcolor=" + myShirtColor + "&slogancolor=" +
mySloganColor + "&slogantext=" + mySloganText"";
data : queryString
尝试添加此。
contentType: "application/json; charset=utf-8",
type:'GET',
,让你的价值观上insertInfo.php使用$_GET
重定向你的成功的功能
var url = "thank_you.php";
$(location).attr('href',url);
其工作
你在哪里把'警告添加此代码(测试)'? – gideon 2012-02-07 10:58:30
您是否在控制台中发现任何错误? – 2012-02-07 10:58:45
试着设置一个$(document).ready(function(){... do call ...})内的整个调用。 – 2012-02-07 10:59:30