$ .ajax()未在控制器页面上发布

时间:2015-10-11 18:17:20

标签: php ajax post controller

我把这个代码写在我得到的一个旧项目中。根据此代码,AJAX在控制器页面上发布数据,并在那里执行进一步的功能。这是代码:

 $("#esti").submit(function(e){
                $("#Complete").attr("disabled", "disabled");
                e.preventDefault();
                var formObj = $(this);
                var emborderID = '?emborder_id='+'<?php echo $emborder_id?>';
                var formURL = "order_process_controller.php"+emborderID;

                if(window.FormData !== undefined)  // for HTML5 browsers
                {
                    $(".loading").show();
                    var formData = new FormData(this);
                    $.ajax({
                        url: formURL,
                        type: 'POST',
                        data:  formData,
                        mimeType:"multipart/form-data",
                        contentType: false,
                        cache: false,
                        processData:false,
                        success: function(data, textStatus, jqXHR)
                        {
                               $(".loading").hide();
                            if(data=="success"){
                                window.location.href = "my_account.php";
                            }else if(data=="false"){
                                $("#msg_box").addClass("error-message");                            
                            }
                            else{
                                $("#msg_box").addClass("error-message");
                                $("#msg_box").html(data).show();
                            }

                            $("#Complete").removeAttr("disabled");
                            $('html, body').animate({ scrollTop: $('#msg_box').offset().top }, 'fast');
                        },
                        error: function(jqXHR, textStatus, errorThrown)
                        {
                            console.log(jqXHR);
                        }          
                   });

               }
               else  //for older browsers
                {
                    //generate a random id
                    var  iframeId = 'unique' + (new Date().getTime());

                    //create an empty iframe
                    var iframe = $('<iframe src="javascript:false;" name="'+iframeId+'" />');

                    //hide it
                    iframe.hide();

                    //set form target to iframe
                    formObj.attr('target',iframeId);

                    //Add iframe to body
                    iframe.appendTo('body');
                    iframe.load(function(e)
                    {
                        var doc = getDoc(iframe[0]);
                        var docRoot = doc.body ? doc.body : doc.documentElement;
                        var data = docRoot.innerHTML;
                        //data is returned from server.
                        if(data=="success"){
                            window.location.href = "my_account.php";
                        }else if(data=="false"){
                            $("#msg_box").addClass("error-message");                            
                        }                       
                        else{
                            $("#msg_box").addClass("error-message");
                            $("#msg_box").html(data).show();
                    }

                        $('html, body').animate({ scrollTop: $('#msg_box').offset().top }, 'fast');
                    });

                }    
            });
    });

现在我遇到一个问题,有时页面不会启动AJAX请求或其他事情发生,页面将数据发布在同一页面上,而不是将其发布到控制器页面上。

请帮忙。

0 个答案:

没有答案