php - 发布大数据时我的 PHP 文件未执行
问题描述
我有一个接收由 jQuery Ajax 发布的 JSON 数据的 PHP 文件。客户端代码正在构建一个 json,然后使用 ajax 将其发布到我的 PHP 文件中。
一切都按预期工作,但我注意到当 JSON 文件超过 8 或 9 MB 时,PHP 文件根本不会被触发,即使客户端和服务器端都在本地主机上(“无网络时间”)。
这是 PHP 脚本
<?php
die('weee');
我有这些设置
post_max_size is "256M"
memory_limit is "32M"
upload_max_filesize is "256M"
max_input_time is "60"
max_execution_time is "30"
当请求很小时,服务器会按预期响应,“weee”带有这些标头
HTTP/1.1 200 OK
Date: Sun, 25 Apr 2021 16:59:27 GMT
Server: Apache
Keep-Alive: timeout=5, max=99
Connection: Keep-Alive
Transfer-Encoding: chunked
Content-Type: text/html; charset=UTF-8
当 JSON 很大时,服务器不会返回“weee”而是一个空白页面,即使我的设置显示每个错误和警告并返回这些标头
HTTP/1.1 200 OK
Date: Sun, 25 Apr 2021 16:59:32 GMT
Server: Apache
Content-Length: 0
Keep-Alive: timeout=5, max=100
Connection: Keep-Alive
Content-Type: application/x-httpd-php
我还注意到,当我尝试在 brwoser 网络选项卡中检查请求时,它仅在大请求时显示红色“请求已被截断”
浏览器控制台不记录任何内容。PHP 使用 API FPM/FastCGI 在我的服务器上工作,我无法再调试此问题,而且我对 Apache 没有太多经验,我需要检查哪些设置?
编辑:我通过Content-Type: multipart/form-data
使用此方法发送带有标头的请求来解决问题。现在,在请求中发送大型 JSON 数据时,Apache 会正常触发我的 PHP 文件
我仍然不知道如何在我的 Apache 上为正常application/x-www-form-urlencoded
请求允许更多的发布请求大小,但是我现在会坚持使用这个解决方案。
我将把这个问题作为参考,如果存在其他解决方案。
解决方案
推荐阅读
- python - Adding header/column to my .csv file
- javascript - 如何获得特定的在 android webview 中使用 js 的 id 数据?
- python-3.x - 使用 Imaplib 在 python 中访问电子邮件内容的不同方法是什么?
- r - 如何在 stringr 中的两个模式或 r 中的 stringi 之间应用 string_extract
- spring-boot - Spring Boot ConfigurationProperties 问题
- flask - Flask:从数据库内容动态填充的表单
- linux - 用另一个列表中的下一行替换列表中的字符串
- python - Enumerating recursively with pass by reference in Python
- bash - 如何编写一个迭代创建新脚本的 bash 脚本
- php - R中的9级压缩