Without significantly more information, it is very hard to draw any accurate conclusion as to why this would occur. One issue I frequently see on particularly small-mid sized business networks has very similar symptoms; you can access services hosted internally from an external location, but you can't access them internally. This is different from your scenario as you clearly stated that the services are externally hosted, however there may be a component internally hosted which you haven't considered.
To summarise what happens:
A client makes a request to a domain name, which resolves to your networks external IP address. The client's request then reaches your external address, your router translates this request using your NAT/PAT rules and determines "You want to talk to this server", and forwards the request. The server responds, and your router forwards the response back to the client.
When you access this same name from an internal client, it still resolves to the external IP address of your network, however when you make a request your router says "whoa, you are already INSIDE the network, I don't need to do any work", because a router facilitates communication "between" networks.
Most cheap routers implement a feature called 'Reverse NAT' to deal with this, and it is not something you can typically control, hence why it rarely effects small businesses and enthusiasts. Larger organisations generally have the proper DNS and Routing infrastructure in place to handle these scenarios, and their architecture is generally thought out. Unfortunately most mid sized businesses fall into limbo, where they need the flexibility of higher-end hardware, but don't organise or configure their installation adequately.
Firstly, you need to identify if this is what is happening.
- Tether your phone to your computer, and go to the website in your favourite browser.
- Observe that everything is working. Open the browsers developer tools and locate the network request/response section. In Internet explorer you arrive there by pressing F12 and opening the Network tab.
- Start recording traffic by pressing the play/record button, and reload the page.
- Invoke something javascript based that doesn't normally work within your network.
- Stop the capture.
Now review the list of network requests made and write down all domain names from these requests. Query their IP addresses using nslookup. If one of these is your private network's external address, this will probably be your problem. If this is the case, simply amend your internal DNS server to resolve this address to the same node which your router forwards this traffic to.
If you are adamant that your website is entirely self contained on the external host, sanity check that your browsers security settings are not just affecting javascript within your organisation. The easiest way is to connect the same PC you use internally to the internet directly via your phone or another device, and verify everything works as expected.
nslookup command line usage: nslookup hostname.com 8.8.8.8
, where 'hostname.com' is the name you want to resolve, and '8.8.8.8' is a commonly used public DNS server. If no DNS server is specified, it will use your computers default.