With plain JS/Browser programming, use iframes since:
- AJAX cannot do cross-domain unless the remote server supports Cross-Origin Resource Sharing (CORS) which usually does not.
- Sockets, JSON or JSONP need some server logic to interface with your code, which I highly doubt is implemented on the remote server.
So unless you control the remote server where you can implement logic or allow CORS, there's little you can do about it.
OR...
If you have access to your server, you can have your server act as a proxy and read the remote page for you. The server is not bound to the Same Origin Policy (SOP) thus can read remote pages. And with this, you can use AJAX requests your server.
It runs like
Your browser <-AJAX-> your server <-wget/curl/fopen/whatever-> remote server
And the request url to your server typically looks like (unencoded):
http://mysite.com/remoteread.php?remote_url=http://myremotesite.com/thispage.php
then remoteread.php
reads the remote page, and simply "relays" the reply to your browser.
Found a article from Yahoo that explains the methodology in more detail