There can be another reason for the POST data being empty : sys_temp_dir
Check your php logs for errors like :
PHP Warning: PHP Request Startup: Unable to create temporary file, Check permissions in temporary files directory.
PHP Warning: PHP Request Startup: POST data can't be buffered; all data discarded
It seems that for requests with large amounts of data, PHP will store them as temp files in the temp dir.
This dir is defined an init-param : sys_temp_dir
If its set incorrectly, or is not writable, temp files cannot be created and the large request data is discarded.