I want to run a web server on my home network but my ISP doesn't let incoming requests from port 80, so I have to use port 81, is there a way I could hide the port number from my domain so that people don't have to type mysite.com:81 in the address bar?
I tried to use an SRV record but after failing so many times I realized that the browser needs to obey the SRV record and it doesn't so that's why it doesn't work.
Note
My ISP also wouldn't let me buy a static IP so I have to use a dynamic dns service provided by noip.com.
You need to do either port forwarding or redirect requests on server.
For example run server on 8080
port and redirect all requests from port 80 to 8080.
See this: Apache VirtualHost: How to ServerName a port different from 80
If your ISP blocks port 80, then you can't run anything, not even a port forwarder, on port 80. Which means your visitors will need to use the port number. Period. Sorry, but there's just no way to make the browser use a different port without telling it to.
One thing that some dyndns providers allow you to do is to create a page that's shown when the domain is offline. You could get jordanjones.noip.com and realjordanjones.noip.com, set jordanjones.noip.com to offline, and make a page there that's nothing but a frameset with one big frame that pulls in realjordanjones.com:81. Don't know if noip.com offers that service, though.
The only real answer is: get a decent provider.