Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery Ajax调用需要暂停吗?_Jquery_Ajax - Fatal编程技术网

Jquery 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命令时遇到问题。。所以问题是,在ajax调用php页面之后(以及在db中插入数据之后)。。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";
          }         
         }
});
                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";
                        }

                    }
                });
            }