Arduino not receiving HTTP POST data from Web form

I have an Arduino Ethernet shield programmed as a webserver. The webserver receives HTTP POST requests and does something with them. The idea is that you could send commands to your Arduino devices over the internet.

This all works perfectly as long as I control it from my local network by typing the local IP of my arduino (192.168.2.99) into my Web browser. But if I try to control the Arduino from a remote computer by typing in my domain name (e.g. mywebsite.com) the HTTP POST request data is not received by the Arduino. The web page hosted by the Arduino loads fine, it just doesn’t receive the commands from the html form.

The best way to test the issue is from my smartphone. If I turn on WiFi and direct my browser to 192.168.2.99 everything works fine. If I turn off WiFi and use 4G to direct my browser to my URL, the page loads but the data I enter into the html form is not received by the Arduino.

At first I thought that the post request data may be blocked by either the ISP or the router/firewall. My ISP is Time Warner and my router is a Belkin. So I set the device up at a friend’s house who uses AT&T with a router supplied by AT&T. It still did not work. So either both of our setups block HTTP POST data or the problem is something else entirely.

Does anyone know what the problem might be?

It is hard to tell unless you post your code. Maybe something there will explain the fail.