Jquery Ajax调用需要暂停吗?
调用ajax命令时遇到问题。。所以问题是,在ajax调用php页面之后(以及在db中插入数据之后)。。ajax调用的成功应该将页面重定向到其他地方。。。。代码如下:Jquery Ajax调用需要暂停吗?,jquery,ajax,Jquery,Ajax,调用ajax命令时遇到问题。。所以问题是,在ajax调用php页面之后(以及在db中插入数据之后)。。ajax调用的成功应该将页面重定向到其他地方。。。。代码如下: $.ajax({ type: "POST", dataType: "json", url: "insertInfo.php", timeout: 3000, data: "name=" + myName + "&email=" + myEmail +
$.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";
}
}
});
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";
}
}
});
}
现在奇怪的事情发生了,当我把:
alert('test')
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";
}
}
});
}
在调用ajax之前!。。如果我把它放进去,当然会出现messagebox,ajax工作得很好,连接到db并重定向页面
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";
}
}
});
}
如果我去掉警报框,什么也不会发生,数据库不会被修改,也不会发生重定向
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";
}
}
});
}
我不明白问题出在哪里。。。我是否需要暂停ajax调用
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";
}
}
});
}
每一个合理的解释都会让你大吃一惊:)
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";
}
}
});
}
if($('.info用户表单').valid() {
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";
}
}
});
}
好的,这是在一个document.ready of jquery。。。。
所有这些…唯一的区别是在一个案例中,在ajax调用之前存在alertbox。。。
谢谢大家的回复,我会尽量看一下bugzilla,即使我不知道该期待什么
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";
}
}
});
}
也用firebug做了测试
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";
}
}
});
}
因此,当firebug运行时,jax将把数据保存在db中并重定向页面。
firebug关闭时,将只保存数据,而不重定向
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";
}
}
});
}
在Chrome中,甚至不保存数据….请检查错误控制台和网络日志,以了解发生了什么情况。另一个可能的原因是,您试图在初始化DOM之前从DOM中获取输入值等。如果是这种情况,您可以将代码放入$(文档)中.ready事件。希望这有帮助所以在搜索和各种测试后,我发现如果我将
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";
}
}
});
}
异步:false
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";
}
}
});
}
在ajax调用中
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";
}
}
});
}
它工作得很好(我将在firefox中测试,在chrome中工作得很好
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";
}
}
});
}
任何人都明白为什么吗?…很高兴知道…谢谢您似乎正在验证表单。请确保表单提交的侦听器返回false
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";
}
}
});
}
var queryString = "name=" + myName + "&email=" + myEmail +
"&birthdate=" + myBirthdate + "&nickname=" +
myNickName + "&shirtcolor=" + myShirtColor + "&slogancolor=" +
mySloganColor + "&slogantext=" + mySloganText"";
data : queryString
尝试添加这个
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";
}
}
});
}
contentType: "application/json; charset=utf-8",
type:'GET',
并使用$\u get
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";
}
}
});
}
对于重定向,请在成功函数中添加此代码
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";
}
}
});
}
var url = "thank_you.php";
$(location).attr('href',url);
它起作用了你把警报(测试)放在哪里了?你在控制台中有错误吗?试着在$(文档)中设置整个调用。准备(函数(){…do call…})Gideon:我把警报测试放在ajax调用之前了…Rory:我看不到任何错误…但是如果我放了一个带有从DOM获取的值字符串的alertbox(我应该发送给数据库的),字符串是正确的…似乎警报框会减慢每件事的速度,ajax可以正常工作…Firebug是否显示请求已通过或已被取消?您的服务器/代码是否对返回的数据使用gzip压缩?如果是,请尝试禁用该功能。您是否使用最新版本的JQuery?请确保您是。它确实是…或者rwise我认为在ajax调用之前,alertBox也不起作用。但是我真的很想知道为什么应用async:false条件它会起作用……在window.location.href=“thank_you.php”之后放置警报(“内部”)时会发生什么?
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";
}
}
});
}