views:

76

answers:

5

I have an application which is written entirely as html/js (there is no server). Using javascript, I would like to retrieve a script from another domain and get its contents as a string. I do not want to evaluate the script. Is there any hack which can make this possible?

+3  A: 

I do not think so. If there were a way, it would violate the ban of cross domain downloads. I guess there is a way to relax these limitations by properly configuring the security on the browser, but it is messy and unreliable among other things because of browser dependencies. You will have to do it on the server

mfeingold
+1  A: 

You can't. The cross-domain security model implemented by browsers prevents this. You'd need to go through another a server on your domain as a proxy which can access the remote resource for you.

Peter Bailey
A: 

Do it with Ajax! Personally, I like using jQuery wherever I can. Here's an article that describes exactly what you want to do.

http://jquery-howto.blogspot.com/2009/04/cross-domain-ajax-querying-with-jquery.html

However, you do need to have some server-side component for it to work. Even just a wee bit of PHP should do the trick.

Matt Ball
+2  A: 

Sounds like JSONP for me.

eskimoblood
Yep, although that sounds like evalling :)
ChrisR
A: 

Hi,

It's definitely possible. Instead of using jQuery or other libraries that implements the JSONP technique, implement JSONP yourself!

There's a few steps, but at the end, skip the "eval" part. Instead do what you want to do with the javascript string...

A nice in depth article is hard to find but here's one I quickly found:

http://niryariv.wordpress.com/2009/05/05/jsonp-quickly/

JSONP is in fact, a pretty clever technique. Learning it just for the fun of it is worthwhile!

Good luck

Mike Gleason jr Couturier
I forgot, the script on the other domain should also be JSONP friendly
Mike Gleason jr Couturier