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