The server software I wrote at EA had a really nice feature: it would display an XML file of its status if you made an HTTP GET request to a specific port on the server. This is handy because it can be used by server-farm monitoring tools or for things as simple as a server up/down indicator. I wanted a server up/down indicator for the theimperialrealm.com site as well as on the game's login screen.
Adding an HTTP server to the game server's front door was easy, a few lines to parse a new command line parameter for the port number, four lines to add the HTTP server and about 20 lines to output the game status as XML. Easy peasy.
I coded up the web page, but as soon as I tried it, the AJAX call returned a mysterious 0 result status and no data. Some Googling about reminded me of AJAX's rules about Same-Origin Policy. If the XML is not on the same server as the web page calling it, it runs afoul of XSS (cross-site scripting) restrictions. I'm not going to be running my web server on the same server as the game, so that was a non-starter.
I did some research on ways to circumvent Same-Origin Policy, and discovered CORS (Cross-Origin Resource Sharing) which would work fine for this, but it would mean implementing a new feature into my in-game HTTP server. Too much trouble.
Next I tried having the server status as a super-simple HTTP5 document and embedding it in the news page as an IFRAME. This worked fine, but IFRAME's are kind of a pain to position and make flow with the document. The real killer though, was when the game server was actually down. In that case it would display the chrome error page where the server status was supposed to go, and I couldn't find any reasonable way to overcome that ugliness.
We were unable to retrieve our session cookie from your web browser. If pressing F5 once to reload this page does not get rid of this message, please read this to learn more.
You will not be able to post until you resolve this problem.