我在购物车上工作。我只在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,则会发送数据并且一切正常。