No, you can load *scripts* cross-site with no problem.
 
It's true, a server-side proxy is the only way to do a cross-site Ajax
download. But if the information is available in any kind of executable
JavaScript format, you can use a script tag or a dynamic script element to
download it.
 
That's what the JSONP (JSON with callback) format is all about - wrap a JSON
object inside a callback function whose name is given in the request URL.
Here's an example:
 
http://www.flickr.com/services/feeds/photos_public.gne?format=json
<http://www.flickr.com/services/feeds/photos_public.gne?format=json&jsoncall
back=fotofeed> &jsoncallback=fotofeed
 
That URL returns:
 
fotofeed({
  "title": "Everyone's photos",
  "link": "http://www.flickr.com/photos/";,
  // more stuff here, including an array of photo links and info
})

If you create either a script tag or a dynamic script element with that URL
in the src, it will call your "fotofeed" function (or any function you name
in the jsoncallback= URL parameter) and pass it the JSON data.
 
It doesn't have to be JSON data, of course - the script tag can execute any
JavaScript code (which can be good or bad - obviously you need to trust the
data provider). JSONP is just a common convention for downloading JSON data
cross-domain.
 
If you want to make sure that no rogue JavaScript code is executed, or if
the data isn't available in JSONP or a similar executable script format,
then you do need to Ajax and a server-side proxy.
 
-Mike



  _____  

From: Matt Stith

The only way around is to use a server-side script as a proxy, as loading
scripts cross-site is a security risk, which is why browsers block that out.


From: Anthony Leboeuf(Worcester Wide Web) 


I am working on a website for the BBB and need to load a document cross
site, I am getting a permission denied message when doing so. Is there a
way around that?

Reply via email to