使用serialize()时,Jquery FancyBox不会在FireFox中发送POST数据

时间:2012-04-13 10:19:44

标签: jquery ajax firefox post fancybox

我在购物车上工作。我只在FireFox中遇到POST数据问题。

有一个链接 - Cart,在FancyBox中打开购物车(cart.php),在Cart中有一个提交按钮,使用$ .ajax将数据发送到customize.php。

问题从这里开始 - 如果在Jquery中设置手动获取每个变量和值,则它会收集post数据,但如果使用serialize()则POST数据为空。这只发生在FireFox中。

我在$ .ajax中使用这些参数 类型:'post', url:'customize.php', data:$('#cart-form')。serialize()

我尝试了print_r($ _ POST),只有Chrome甚至(哈哈)IE9收集了数据。使用$ .ajax和serialize()时,FireFox和FancyBox的Smth错误,我无法理解。

有什么想法吗?

Jquery的:

$("#customize").live('click', function() { // ID of the button

    $.fancybox.showActivity();

    $.ajax({
        type        : "POST",
        url         : "customize.php",
        data        : $('#cart-form').serialize(), // And it IS the ID
                                                   // of the form
        success     : function(data) {             
                         $.fancybox(data);
                      }
});

    return false;
});

PHP:

<?php 

   print_r($_POST); 

?>

问题不在于选择器,因为它在所有其他浏览器上工作 - 它们收集数据。当使用带有AJAX请求的FancyBox时,这只发生在FireFox中。

FireFox中的输出:

Array ( )

Chrome和IE9中的输出:

Array ( [foo] => 123 [bar] => 456 )

如果我将$。('form')作为选择器,它会显示父页面中的变量和值(如果有的话)。

如果我使用serializeArray()会发生同样的情况 - 没有区别。

如果我在没有FancyBox的情况下直接访问cart.php,则会发送数据并且一切正常。

0 个答案:

没有答案