Ajax Post Response中的重定向

时间:2016-09-16 12:29:50

标签: jquery ajax

我可能在这里遗漏了一些巨大的东西,但似乎我无法重定向我的ajax响应,原因是我真的不理解,有人可以帮助我吗?

以下是代码:

   (function($){
     function processForm( e ){
        $.ajax({
          url: 'z1.php',
          dataType: 'html',
          type: 'post',
          contentType: 'application/x-www-form-urlencoded',
          data: $("#purchases").serialize(),
          processData: false,
          success: function(data){
            if(data == "success") {
               window.location.href = 'zzz.php';
            }

            if(data == "error") {
                window.location.href = 'xxx.php';
            }
         }
      });

         e.preventDefault();
    }

        $('#purchases').submit( processForm );
  })(jQuery);

显然如果我取消preventDefault() ajax帖子甚至不能正常工作,他提交表格但回复不完整......

我只想处理我的表单并使用ajax帖子,并取决于他返回的内容重定向到带有消息的特定网址。

3 个答案:

答案 0 :(得分:0)

我认为错误句子可能是

if(data == "success") {window.location.href = 'zzz.php';}。如果数据成功,您将直接引用。成功必须在一些其他属性中,您需要参考。 Didi你安慰data你来的样子。它是JSON结构吗?

答案 1 :(得分:0)

尝试将submit()方法中的代码编写为paremeter,并在函数末尾使用return false

(function($){
$('#purchases').submit(function(e){
    e.preventDefault();
        $.ajax({
          url: 'z1.php',
          type: 'post',
          data: $("#purchases").serialize(),
          success: function(data){
            if(data == "success") {
               alert("success");
               document.location.href = 'zzz.php';
            }

            if(data == "error") {
                alert("Error");
                document.location.href = 'xxx.php';
            }
         }
      });
   return false;
});
})(jQuery);

还要确保服务器仅响应“成功”或“错误”文本。

答案 2 :(得分:0)

$(document).ready(function(){

$("#purchases").submit(function (e) {
    e.preventDefault();
    $.ajax({
      url: 'z1.php',
      dataType: 'html',
      type: 'post',
      contentType: 'application/x-www-form-urlencoded',
      data: $("#purchases").serialize(),
      processData: false,
      success: function(data){
        if(data == "success") {
           window.location.href = 'zzz.php';
        }

        if(data == "error") {
            window.location.href = 'xxx.php';
        }
     }
  });

});

});

试试这段代码。