Is there a better way to keep the domain name unaltered in the adress bar besides using a main frame?
You can use AJAX to change the content of the page without changing the address.
However, if the data is located on another domain then the address should change to point to that domain. Also, it is recommended that the address can be bookmarked so user's can easily return to the data. The address should reflect the content of the resource it points to.
Using a frame (or some other inner window, via Flash or Silverlight, etc.) really is the only way to do it - if you try to modify the main window's location with JavaScript, it will change the page's location to the URL you specify, so that will not really work either.
You should be mindful of RESTful principles - what is the intent for not allowing the URL in the address bar to reflect the true location of the user within the domain?