想了解PHP/Apache/AJAX-POST限制?的新动态吗?本文将为您提供详细的信息,我们还将为您解答关于php发送ajax请求的相关问题,此外,我们还将为您介绍关于ajax–如何克服XHRFFP
想了解PHP / Apache / AJAX-POST限制?的新动态吗?本文将为您提供详细的信息,我们还将为您解答关于php发送ajax请求的相关问题,此外,我们还将为您介绍关于ajax – 如何克服XHR FF POST大小限制?、ajaxform或者ajaxpost,导致echo / var_dump 打断php程序的运行?、Ajax中的POST数据大小是否有限制?、apache - php post不能获取 在线等 着急的新知识。
本文目录一览:- PHP / Apache / AJAX-POST限制?(php发送ajax请求)
- ajax – 如何克服XHR FF POST大小限制?
- ajaxform或者ajaxpost,导致echo / var_dump 打断php程序的运行?
- Ajax中的POST数据大小是否有限制?
- apache - php post不能获取 在线等 着急
PHP / Apache / AJAX-POST限制?(php发送ajax请求)
我正在尝试通过ajax(jQuery)发送200万个字符(非二进制字符串)的POST数据,并且在PHP方面总是空白。这是我的代码:
var string = "<data string that is 2M chars long>";$.ajax({ cache: false, type: ''POST'', url: ''data.php'', data: {''data_string'': string}});
在PHP方面,我收到以下错误消息(尝试从中检索数据时$_POST[''data_string'']
):
Notice: Undefined index: data_string in data.php on line ...
我已经检查了post_max_size
php.ini,并将其设置为256M,这是否足够?我很困惑,不确定自己在做什么错…
编辑:如果我制作"string"
少量数据(例如var string =''test''
),则按预期$_POST["data_string"]
返回test
。所以我想知道我是否在Apache2,PHP或浏览器本身中达到某种数据限制?我正在使用Google
Chrome 17.0.963.79
EDIT2:memory_limit = 256M
在php.ini中
EDIT3:max_input_time = -1
在php.ini中
EDIT4:var_dump($ _ POST)返回数组(0)
EDIT5:在debian squeeze上运行最新的稳定版PHP5:具有Suhosin-Patch(cli)的PHP 5.3.3-7 +
squeeze8(内置:2012年2月10日14:12:26)
答案1
小编典典您必须检查您与服务器之间所有项目的限制参数。代理服务器非常难(如果有的话),但是至少您可以检查:
阿帕奇:
- LimitRequestBody,默认情况下约为2Gb,对于64位可能更大,请查看错误日志以获取详细信息。
PHP:
- 与POST大小直接相关的post_max_size
- 可能不相关的upload_max_filesize不确定
- max_input_time,如果POSt花费的时间太长
- max_input_nesting_level,如果您的数据是具有很多子级别的数组
- max_execution_time,但可以肯定不是
- memory_limit,因为您可能超出了子进程允许的内存大小
- max_input_vars,如果您的数据数组包含许多元素
如果您已达到Apache的已编译限制,则唯一的解决方案是避免直接处理如此大数据块的POSt,您必须将其分成几部分。
ajax – 如何克服XHR FF POST大小限制?
Firebug request size limit has been reached by Firebug.
我的问题是:我的选择是什么?
>如果我在标题中声明content.length,它会工作吗?
>我在我的apache配置文件中添加了一行并重新启动它:LimitRequestBody 0
>我增加了mysql配置文件中传输文件的大小
或者这是一个浏览器问题?
我能想到的唯一解决方案是将数据切成碎片并逐个传输数组,但我不喜欢这个想法.根据萤火虫的内容长度为91691.
有什么建议?
解决方法
您应该增加其值以查看非截断的请求.例如,将其设置为65535.
在这里,您可以找到许多您可能想要更改的Firebug选项:http://getfirebug.com/wiki/index.php/Firebug_Preferences
ajaxform或者ajaxpost,导致echo / var_dump 打断php程序的运行?
一个很奇怪的事情,页面有个链接xxx,使用ajax, 点击之后转到在thinkphp的controller,我在这个controller里面加了echo或者var_dump想看一些参数值,结果不执行了,页面不会跳转了。 把echo 或 var_dump去掉,就执行成功了。
不明白这个为什么,难道是执行过程不能把打断?
立即学习“PHP免费学习笔记(深入)”;
如果是ajax导致的,请问如何查看controller里的数据呢?
回复内容:
一个很奇怪的事情,页面有个链接xxx,使用ajax, 点击之后转到在thinkphp的controller,我在这个controller里面加了echo或者var_dump想看一些参数值,结果不执行了,页面不会跳转了。 把echo 或 var_dump去掉,就执行成功了。
不明白这个为什么,难道是执行过程不能把打断?
立即学习“PHP免费学习笔记(深入)”;
如果是ajax导致的,请问如何查看controller里的数据呢?
不会不会不会
不会不会不会
这个跟你在ajax对返回结果的处理有关
echo输出内容了啊
目前不知道你的页面代码,如果是ajax请求controller,那么问题应该是你echo了内容,导致返回的不是json格式的信息,页面无法处理,所以没什么反应了
会的,ajax调试推荐用firephp或者socketlog
不会 继续debug
echo输出的内容使json无法正常解析。
ajax用了json类型,所以echo会破坏json格式,造成js解析不了,其实是有数据返回了的,可以打开浏览器的“元素审查”就是开发者工具抓包看响应
不会的。应该是数据格式的问题。
估计是楼主用的ajax的原因,因为不echo数据的时候,返回的数据是正常的,跳转也是在success成功后进行跳转,而echo后,返回的数据则不正常,就没执行跳转
Ajax中的POST数据大小是否有限制?
我正在尝试使用jQuery Ajax将页面中的数据数组发送到MVC Action。这是我的jQuery代码:
$('#btnSave').click(
function () {
result = [];
$('#tblMatters tbody tr.mattersRow').each(function () {
if (!($(this).hasClass('warning'))) {
var item = {};
if ($(this).find('td.qbmatter > div.dropdown').length > 0) {
item.QBDescription = $(this).find('td.qbmatter > div.dropdown > a').text();
} else {
item.QBDescription = $(this).find('td.qbmatter').text();
}
var id = $(this).find("td:first > a").text();
item.Narrative = $("#collapse" + id).find("div.scrollCell").text();
item.WorkDate = $(this).find('td.workDate').text();
item.Hours = $(this).find('td.hours').text();
item.Person = $(this).find('td.person').text();
if ($(this).find('td.rate > div.dropdown').length > 0) {
item.Rate = $(this).find('td.rate > div.dropdown > a').text();
} else {
item.Rate = $(this).find('td.rate').text();
}
item.Amount = $(this).find('td.amount').text();
result.push(item);
}
});
var originalRecords = $("#tblSummary tr.summaryTotalRow td.summaryOriginalRecords").text();
var originalHours = $("#tblSummary tr.summaryTotalRow td.summaryOriginalHours").text();
var excludedHours = $("#tblSummary tr.summaryTotalRow td.summaryExcludedHours").text();
var totalHours = $("#tblSummary tr.summaryTotalRow td.summaryTotalHours").text();
$.ajax({
url: "/Home/SaveQBMatter",type: "POST",data: JSON.stringify({ 'Matters': result,'originalRecords': originalRecords,'originalHours': originalHours,'excludedHours': excludedHours,'totalHours': totalHours }),dataType: "json",traditional: true,contentType: "application/json; charset=utf-8",success: function (data) {
if (data.status == "Success") {
alert("Success!");
var url = '@Url.Action("Index","Home")';
window.location.href = url;
} else {
alert("Error On the DB Level!");
}
},error: function () {
alert("An error has occured!!!");
}
});
});
让我解释一下。我有一个动态生成的HTML表,我需要将此数据存储到数据库中。在jQuery中,我遍历表有一个循环,我将result
数组中每一行的数据存储起来。然后,我使用Ajax将这些数据传递到MVC
Action中。
这是我的问题开始的地方…我已经意识到有时会按预期进行,但是有时我会从Ajax中收到错误消息。alert("An error has
occured!!!");
现在我已经了解到,当result
数组变大时会发生此错误。例如:如果包含100-150个项目>一切正常,但是当数量超过〜150个时>错误。
Ajax中是否有任何POST限制?如何设置任何尺寸?我真的需要这个功能!请帮忙!
我的ActionResult代码:
public ActionResult SaveQBMatter(QBMatter[] Matters,string originalRecords,string originalHours,string excludedHours,string totalHours) {
DBAccess dba = new DBAccess();
int QBMatterID = 0;
int exportedFileID = 0;
foreach (QBMatter qb in Matters) {
dba.InsertQBMatter(qb.QBDescription,qb.Narrative,qb.WorkDate,qb.Person,qb.Hours,qb.Rate,qb.Amount,ref QBMatterID);
}
ExcelTranslator translator = new ExcelTranslator();
translator.CreateExcelFile("",Matters,originalRecords,originalHours,excludedHours,totalHours);
return Json(new { status = "Success",message = "Passed" });
}
更新:找到了解决方案
JSON的最大长度!我需要增加这个值。在web.config中添加以下内容:
<appSettings>
<add key="aspnet:MaxJsonDeserializerMembers" value="150000" />
</appSettings>
apache - php post不能获取 在线等 着急
代码换了服务器之后$post请求就获取不到,所有超全局变量都获取不到,包括$_querst,文件位置和代码都没问题,以前的服务器上都能用。新服务器是用yum安装的,我就改变了一下
应该是服务器禁用了post读取,也有可能是我改过路径,这个路径下不允许读取post。请大神帮忙解决一下。这是phpinfo
回复内容:
代码换了服务器之后$post请求就获取不到,所有超全局变量都获取不到,包括$_querst,文件位置和代码都没问题,以前的服务器上都能用。新服务器是用yum安装的,我就改变了一下apache的默认路径。打印$_post数组页面空白。
应该是服务器禁用了post读取,也有可能是我改过路径,这个路径下不允许读取post。请大神帮忙解决一下。这是phpinfo
解决了,php版本的问题
图片太多没看完
看下权限问题 不行切换下php版本 再不行 重新安装下php环境 都不能post还玩什么
今天的关于PHP / Apache / AJAX-POST限制?和php发送ajax请求的分享已经结束,谢谢您的关注,如果想了解更多关于ajax – 如何克服XHR FF POST大小限制?、ajaxform或者ajaxpost,导致echo / var_dump 打断php程序的运行?、Ajax中的POST数据大小是否有限制?、apache - php post不能获取 在线等 着急的相关知识,请在本站进行查询。
本文标签: