1. 前端代码
console.log("saving data=", data); //data 是Json格式的数据,前台向后台传输的数据
$.ajax({
url: 'TC_Save.php',
data: { 'data': data},
type: 'POST',
dataType: 'json',
async: true,
cache: false,
success: function(data) {
console.log("saved result=");
console.log(data); //问题是当data数据太多时 (大概50kb),后台PHP接受到的数据不全,有的变成了NULL, *此处打印出来的data与上面的data对比可知后台PHP接收到的数据不全。
if (data['good'] == 1) {
console.error("Saving data: done!");
} else {
console.error( data['error']);
}
},
error: function(XMLHttpRequest, textStatus, errorThrown) {
console.error("X.status=" + XMLHttpRequest.status + ", X.readyState=" + XMLHttpRequest.readyState + ", textStatus=" + textStatus);
},
});
2. 后端代码
<?php
error_reporting(0);
header('Content-Type:text/html;charset=utf-8');
$data = array();
$data["data"] = array();
$data["error"] = array();
data['good'] = 0;
$data["data"] = $_POST["data"];
die(json_encode($data));
?>
3. 问题是当data数据太多时 (大概50kb),后台PHP接受到的数据不全,有的变成了NULL。
4. 解决办法:
4.1 服务器网站下面的web.config设定,增加红色的部分
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.web>
<httpRuntime requestValidationMode="2.0" maxRequestLength="102400" />
<httpModules>
<add name="UploadModule" type="UploadModule,UploadModule" />
</httpModules>
</system.web>
<system.webServer>
<security>
<requestFiltering>
<requestLimits maxAllowedContentLength="2147483647" maxUrl="40960000" maxQueryString="20480000" />
</requestFiltering>
</security>
</system.webServer>
</configuration>
4.2 PHP初始化文件php.ini设定
; How many GET/POST/COOKIE input variables may be accepted
max_input_vars = 100000
; Maximum amount of memory a script may consume (128MB)
; http://php.net/memory-limit
memory_limit = 1280M