【问题标题】:Jquery ajax is cutting the arrays?Jquery ajax 正在切割数组?
【发布时间】:2017-02-12 11:53:53
【问题描述】:

我正在向 laravel 控制器发送两个数据数组。发送前数组的长度约为 220 个。然后进行测试,我将 json 中的响应再次返回给 jquery,其中包含数组的长度,第一个可以 - 220,第二个数组的长度约为 114。

我该如何解决?

jQuery ajax:

    console.log('Array first before '+arr.length);
    console.log('Array second before '+arr_planned.length);

    $.ajax({
        method:'POST',
        url:url,
        data: {
            _token:token,
            arr:arr,
            arr_planned:arr_planned
        }
    }).done(function(msg) {
      console.log(msg);
    });

控制器

$array_normal = $request['arr'];
$array_planned = $request['arr_planned'];

return response()->json(['Array first after' => sizeof($array_normal),'Array second after' => sizeof($array_planned)],200);

编辑
我现在看到数组长度限制为 334(基于其他数组测试)。

【问题讨论】:

  • return response()->json(['Array first after' => count($array_normal),'Array second after' =>count($array_planned)]);check once
  • 完全一样的响应。

标签: php jquery ajax laravel-5.2


【解决方案1】:

问题很可能是您的 php.ini 配置中的请求中接受了多少变量。 您应该将;max_input_vars = 100 取消注释为max_input_vars = 100000

希望对你有所帮助。

【讨论】:

    【解决方案2】:

    您可能已达到最大 POST 大小或输入变量的 PHP 限制。在您网站的根目录中创建/编辑一个 php.ini 文件并添加

    memory_limit = 256M
    post_max_size = 150M
    max_input_vars = 10000
    

    您可以通过在回复中添加['memory_limit' => ini_get('memory_limit'), 'post_max_size' => ini_get('post_max_size'), 'max_input_vars' => ini_get('max_input_vars')] 来查看限制是否已实施。

    这也可能是 PHP 处理这么多数据的方式的问题。它可能会在达到定义的任何限制之前将其截断。您可以将$_POSTphp://input 进行比较,后者是原始字符串数据。你可以使用这样的函数:

    function getRealPOST() {
        $pairs = explode("&", file_get_contents("php://input"));
        $vars = array();
        foreach ($pairs as $pair) {
            $nv = explode("=", $pair);
            $name = urldecode($nv[0]);
            $value = urldecode($nv[1]);
            $vars[$name] = $value;
        }
        return $vars;
    }
    
    var_dump($_POST, getRealPOST());
    

    如果它们不同,那么 PHP 在填充 $_POST 时只是在某处遇到了困难,您可以使用 getRealPOST 函数作为解决方法。

    【讨论】:

    • 谢谢!问题只是 max_input_vars。
    • 很高兴你把它整理好了。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多