小编Sco*_*ers的帖子

POST数据在浏览器和PHP之间截断

我遇到了一个问题,即使用AJAX通过POST发送的大型数据集并没有使它成为$_POSTPHP中的变量.

用户通过webform上传Excel/CSV文件,并通过AJAX进行解析.该特定示例具有775个记录,每个记录具有13个字段/元素.添加正在提交的其他字段,数据集中的元素少于11,000个.根据我在这个问题上所做的研究,32位浏览器(即Firefox,Chrome等)应该能够处理42.9亿个元素,所以我不认为数据大小是一个问题,特别是作为响应从文件上传包含所有元素.

只有在提交整个表单进行验证并输入数据库时​​,问题才会出现.问题是Firebug和Chrome开发者工具上的控制台显示整个数据集已提交: Firebug输出

做一个var_dump$_POST给出了这样的: 在此输入图像描述

php.ini已'post_max_size'设置为200M.甚至'upload_max_filesize'设定为100M.我个人测试的Firefox 32.0.3和Chrome 37.0.2062.103 m以及UAT测试的其他旧版本(包括IE 10)都会出现此问题.

AJAX调用是:

new wrapper.ajax('/t1.php', {
    type: 'POST',
    data: data,
    form: $('form[name=oppForm]'),
    success: function (response)
    {
    if (response.result)
    {
        window.location = response.result;
    }
    },
    complete: function ()
    {
    $("#submit").loading('done');
    }
});
Run Code Online (Sandbox Code Playgroud)

PHP是:

<?php
var_dump($_POST);
Run Code Online (Sandbox Code Playgroud)

有什么想法吗?

编辑

在与其他开发人员交谈之后,我还检查了输出php://input并发现它DID包含浏览器发送的整个POST数据,但数据没有正确转换为$ _POST.但是,如果我从帖子数据中删除10个键,并提交765而不是775,它确实可以正常工作.

javascript php ajax post

4
推荐指数
1
解决办法
3944
查看次数

标签 统计

ajax ×1

javascript ×1

php ×1

post ×1