Javascript 当发送的数组超过特定长度时,AJAX调用返回403
我有一些jQuery代码通过AJAX调用向PHP脚本发送数据 数据由一个具有两个属性的对象组成 属性之一是字符串,由对象数组Javascript 当发送的数组超过特定长度时,AJAX调用返回403,javascript,php,json,ajax,Javascript,Php,Json,Ajax,我有一些jQuery代码通过AJAX调用向PHP脚本发送数据 数据由一个具有两个属性的对象组成 属性之一是字符串,由对象数组JSON.strinfigy(arrayofobjects)获得。 arrayofobjects中的每个对象都包含3个属性,每个属性都是一个简单的字符串。 arrayofobjects中的对象数量根据某些用户操作而变化 问题是:当arrayofobjects超过25个对象的数量时,AJAX调用失败并返回403禁止,因此任何调试都是不可能的 它看起来像是由JSON.strin
JSON.strinfigy(arrayofobjects)
获得。
arrayofobjects
中的每个对象都包含3个属性,每个属性都是一个简单的字符串。
arrayofobjects
中的对象数量根据某些用户操作而变化
问题是:当arrayofobjects
超过25个对象的数量时,AJAX调用失败并返回403禁止
,因此任何调试都是不可能的
它看起来像是由JSON.stringify
生成的字符串,并通过AJAX ovverides发送最大长度
web服务器是Apache2,运行在Ubuntu 18.04上。
不使用任何PHP框架
我所尝试的:
- Apache mod_安全模块未处于活动状态
- 在php.ini中:display_errors=On、log_errors=On和error_reporting=E_ALL
- 为apache2/error.log上的每个用户设置写入权限
- 正常工作apache2/error.log,但没有AJAX相关问题的痕迹,没有任何
错误的痕迹403
- 被调用脚本的URL是正确的
- 这不是跨域呼叫
- 文件权限正常,因为脚本在其他实例中成功调用,并且
包含的元素少于25个arrayofobjects
- 我可以通过http直接访问被调用的页面
- 在
php.ini
$.ajax({
url: "ajax/called_page.php",
type: 'post',
data: {action: "post_duty", content: JSON.stringify(arrayofobjects)},
dataType: "json",
success: function(data) {
do some DOM manipulation
}, error: function() {
alert('Contact webmaster');
}
在您的ajax中:
error:function(jqXHR,textStatus,errorhorn){console.log(jqXHR);console.log(textStatus);console.log(errorhorn);}
可以帮助调试可能重复的,如果您使用的是php框架,例如Symfony,那么您也应该检查该框架的日志(Symfony日志位于/var/logs
@Casper中这不是CORS请求您如何知道:“当arrayofobjects超过25个对象时,AJAX调用失败”是真的?