php ajax提交post请求出现数组被截断情况的解决方法
一、场景
今天做保存专题商品列表的时候发现,前端明明有2300多条数据,但是实际服务端接受存入数据库才166条
二、解决过程
经过调试发现前端页面提交post请求时数据量是正确的,但到服务端只能接受到166条。
一开始以为是post请求长度超过限制,不过看了下请求内容才200多K,而post请求默认支持8M以内的数据传输。
于是怀疑可能是php内部配置导致的,后来百度了下果不其然发现max_input_vars这个配置项,该配置项是在php 5.3.9版本之后才加入的,目的是为了防止hash冲突。
既然如此那就改下该配置项,;重启服务后发现服务端获取到的数据量是1666,是之前的10倍,正好也是配置项调整之后的倍数。
然而前端传的数据量是不确定的,就算把max_input_vars设置成10万,也有可能不够用,还是另寻他法吧。
三、最终解决方法
1、前端将数组转换成json传输,即JSON.stringify(goodsList)
2、服务端接收到并解析$goodsList = json_decode($_POST['goodsList'], true);
3、测试发现前端传过来的数据服务端都能获取到,问题圆满解决
php ajax提交post请求出现数组被截断情况的解决方法的更多相关文章
- ajax提交post请求出现数组被截断情况的解决方法
一.场景 php post 提交数据时传的数据时数组,没有多数据进行序列化处理.发现传到服务端时,部分数据丢失,查询了资料发现php对参数个数有限制,限制在php配置文件中(max_input_var ...
- Laravel使用Ajax提交表单报419 unknown status错误的解决方法
1.在head标签中间添加一行meta标签:<meta name="csrf-token" content="{{ csrf_token() }}"> ...
- ajax多次请求,只执行最后一次的方法
ajax多次请求,只执行最后一次的方法 有时候点击按钮进行异步请求数据的时候可能网络差,用户会点击很多次,或者页面有很多相同的按钮,参数不同,但是调用的ajax相同,只想得到最后一次结果 我的思路是用 ...
- ios/iphone手机请求微信用户头像错位BUG及解决方法
转:http://www.jslover.com/code/527.html ios/iphone手机请求微信用户头像错位BUG及解决方法 发布时间:2014-12-01 16:37:01 评论数:0 ...
- jQuery EasyUI动态添加控件或者ajax加载页面后不能自动渲染问题的解决方法
博客分类: jquery-easyui jQueryAjax框架HTML 现象: AJAX返回的html无法做到自动渲染为EasyUI的样式.比如:class="easyui-layout ...
- Laravel dingo,HTTP的请求头(accept)无法携带版本号的解决方法
Laravel dingo,HTTP的请求头(accept)无法携带版本号的解决方法 2017年9月6日 原创分享 zencodex 使用 Laravel dingo 做api开发时,涉及 A ...
- Ajax提交post请求返回404错误
最近使用ajax提交表单的时候,发现无法执行success函数,后台的代码也正常执行了,但是就是无法执行success函数,执行error函数,返回的错误代码时404.显然是找不到请求的url. 可是 ...
- Django Ajax提交数据请求
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8" ...
- ajax提交完表单数据依然跳转的解决办法
1. 既然ajax提交数据,就把表单里面submit按钮换掉,因为触发submit他就会跳转页面 提交的时候他会先触发ajax 再触发submit的提交 2.如果确定了表单没有submit,那么把提交 ...
随机推荐
- 如何正确地使用Python的属性和描述符
关于@property装饰器 在Python中我们使用@property装饰器来把对函数的调用伪装成对属性的访问. 那么为什么要这样做呢?因为@property让我们将自定义的代码同变量的访问/设定联 ...
- spring项目中使用weblogic的连接池
1.首先在weblogic控制台中配置好一个数据源 我这里建立的数据源的名称叫 jdbc/app1,JNDI名称也叫 jdbc/app1 2.在spring中配置数据源的时候,做如下配置: <b ...
- php array函数实例应用
array_diff_key() array_diff_assoc() array_count_values() array_combine() array_column() array_chunk( ...
- 《Code Complete》ch.14 组织直线型的代码
WHAT? 最简单的控制流:即按照先后顺序放置语句与语句块 WHY? 尽管组织直线型的代码是一个简单的任务,但代码结构上的一些微妙之处还是会对代码质量.正确性.可读性和可维护性带来影响 HOW? 必须 ...
- Redis集群搭建&访问
集群搭建步骤 1.创建多个节点: 2.为每个节点指派槽,并将多个节点连接起来,组成一个集群: 3.当集群数据库的16384个槽都有节点在处理时,集群进入上线状态: 要求:搭建一个包含6个节点的Redi ...
- jBox 弹出窗口中焦点设置问题
jBox 是一个不错的组件库,可以用来比较简单地弹出窗口. 我希望在 jBox 弹出窗口之后,自动将焦点设置到子窗口的某个输入框中,可是发现并不容易. 在 jBox 2.3 中,提供了如下的增强. ...
- 最小生成树之prim
prim是设置一个初始结点,寻找其周围最小的边权值,并将该结点作为初始结点,继续寻找现在结点周围的边权值的最小值,但要注意如果这次寻找的某个边权值没有上次的小的话仍然保留上一次的边权值,即lowcas ...
- android 基础控件 EditText
EditText 简介: EditText 控件继承 TextView ,它有TextView的所有属性和方法,并且自身是可编辑的: extends TextView java.lang.Object ...
- python实现批量ping IP,并将结果写入
最近工作需要,写了一个Python小脚本,分享给大家,因为公司的IP用的差不多了,然后离职人员的IP有没有及时删除,导致没多少IP用了,所以做了一个python脚本跑了跑,清出来一堆ping不通的IP ...
- Gradle用户指南(章9:Groovy快速入门)
Gradle用户指南(章9:Groovy快速入门) 你可以使用groovy插件来构建groovy项目.这个插件继承了java插件的功能,且扩展了groovy编译.你的项目可以包含groovy代码.ja ...