AJAX帖子没有在IE上工作

时间:2014-02-18 19:12:28

标签: javascript php jquery ajax codeigniter

我正在尝试通过AJAX发送表单,以便数据得到验证并在数据库上进行更新。它在Chrome和Firefox上运行得很好,但在IE上它根本不起作用!它不会引起任何错误。

我的PHP代码摘要如下所示(我使用Codeigniter作为我的框架):

function update()
{
    if ($this->uri->segment(3))
    {
        if ("validation ok")
        {
            "update the database"
            $this->session->set_flashdata('data_updated', 'The row has been updated successfully');
            redirect(current_url()); // so I can see the flashdata on my page.
        }

        $data = array(...);

        $this->load->view('template', $data); 
    }
}

就是这样。我一直试图摆脱“重定向”部分,认为它可能与我的问题有关。但即使我评论该行,也不会插入数据。

现在,我的AJAX代码如下所示:

jQuery.ajaxSetup({ cache: false });

jQuery(document).on("submit", ".formmother", function(e) {
    e.preventDefault();
    jQuery(".menumodal").html('');
    jQuery(".menumodal").html('<div class="modal-header"> <a class="close" data-dismiss="modal" aria-hidden="true">×</a>  <h3 id="myModalLabel">Enviando informações...</h3>  </div>  <div class="modal-body"><div class="loader"></div></div>');

    jQuery.ajax({
        type: "POST",
        url: jQuery(this).attr("action"),
        data: jQuery(this).serialize(),
        cache: false,
        dataType:"html",
        success: function(html){
            jQuery(".menumodal").html(html);
        }, 
        error: function(e){
            alert(e);
        }

    });

    // jQuery.post(jQuery(this).attr("action"), jQuery(this).serialize(), function(html) {
        // jQuery(".menumodal").html(html);
    // });
   // prevent normal submit
});

我重组了整个ajax调用,看看是否能从中获取任何东西。但它只是行不通。

会发生什么:

当我点击编辑任何一行时,它会加载(通过ajax)一个带有模态(bootstrap模态)内部数据的表单。那部分工作正常。然后,当我在其他浏览器中单击“保存”时,它会使用相同的页面(已重定向)加载相同的模式,并显示(flashdata)成功消息。数据会在数据库中更新。

但是在IE上发生的事情是,当我点击“保存”按钮时,它再次加载相同的东西,没有任何改变!该行不会在数据库上获得任何错误。

我注意到一个有趣的事情是,如果我从AJAX调用中获取“数据”部分,那么它将返回我的验证错误。但是如果我将一个obrigatory字段留空,则验证不会返回任何错误。

ajax被触发并在IE上获得“成功”,但它不返回新页面,并且行未更新(它在编辑数据之前返回相同的页面)。如果我禁用AJAX调用,它一切正常。所以这与AJAX调用本身有关。

0 个答案:

没有答案