<?xml version="1.0" encoding="utf-8"?>
<feed xml:lang="en-us" xmlns="http://www.w3.org/2005/Atom"><title>Simon Willison's Weblog: crossdomain</title><link href="http://simonwillison.net/" rel="alternate"/><link href="http://simonwillison.net/tags/crossdomain.atom" rel="self"/><id>http://simonwillison.net/</id><updated>2009-11-26T12:52:16+00:00</updated><author><name>Simon Willison</name></author><entry><title>flXHR</title><link href="https://simonwillison.net/2009/Nov/26/flxhr/#atom-tag" rel="alternate"/><published>2009-11-26T12:52:16+00:00</published><updated>2009-11-26T12:52:16+00:00</updated><id>https://simonwillison.net/2009/Nov/26/flxhr/#atom-tag</id><summary type="html">
    
&lt;p&gt;&lt;strong&gt;&lt;a href="http://flxhr.flensed.com/"&gt;flXHR&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
I was looking for something like this recently, glad to see it exists. flXHR is a drop-in replacement for regular XMLHttpRequest which uses an invisible Flash shim to allow cross-domain calls to be made, taking advantage of the Flash crossdomain.xml security model.


    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/ajax"&gt;ajax&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/crossdomain"&gt;crossdomain&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/flash"&gt;flash&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/flxhr"&gt;flxhr&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/javascript"&gt;javascript&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/swf"&gt;swf&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/xhr"&gt;xhr&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/xmlhttprequest"&gt;xmlhttprequest&lt;/a&gt;&lt;/p&gt;



</summary><category term="ajax"/><category term="crossdomain"/><category term="flash"/><category term="flxhr"/><category term="javascript"/><category term="swf"/><category term="xhr"/><category term="xmlhttprequest"/></entry><entry><title>Firefox 3.5 for developers</title><link href="https://simonwillison.net/2009/Jun/30/firefox/#atom-tag" rel="alternate"/><published>2009-06-30T18:08:34+00:00</published><updated>2009-06-30T18:08:34+00:00</updated><id>https://simonwillison.net/2009/Jun/30/firefox/#atom-tag</id><summary type="html">
    
&lt;p&gt;&lt;strong&gt;&lt;a href="https://developer.mozilla.org/en/Firefox_3.5_for_developers"&gt;Firefox 3.5 for developers&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
It’s out today, and the feature list is huge. Highlights include HTML 5 drag ’n’ drop, audio and video elements, offline resources, downloadable fonts, text-shadow, CSS transforms with -moz-transform, localStorage, geolocation, web workers, trackpad swipe events, native JSON, cross-site HTTP requests, text API for canvas, defer attribute for the script element and TraceMonkey for better JS performance!


    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/audio"&gt;audio&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/browsers"&gt;browsers&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/canvas"&gt;canvas&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/crossdomain"&gt;crossdomain&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/csstransforms"&gt;csstransforms&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/dragndrop"&gt;dragndrop&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/firefox"&gt;firefox&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/firefox35"&gt;firefox35&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/fonts"&gt;fonts&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/geolocation"&gt;geolocation&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/html5"&gt;html5&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/javascript"&gt;javascript&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/json"&gt;json&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/localstorage"&gt;localstorage&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/mozilla"&gt;mozilla&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/offlineresources"&gt;offlineresources&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/performance"&gt;performance&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/textshadow"&gt;textshadow&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/tracemonkey"&gt;tracemonkey&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/video"&gt;video&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/webworkers"&gt;webworkers&lt;/a&gt;&lt;/p&gt;



</summary><category term="audio"/><category term="browsers"/><category term="canvas"/><category term="crossdomain"/><category term="csstransforms"/><category term="dragndrop"/><category term="firefox"/><category term="firefox35"/><category term="fonts"/><category term="geolocation"/><category term="html5"/><category term="javascript"/><category term="json"/><category term="localstorage"/><category term="mozilla"/><category term="offlineresources"/><category term="performance"/><category term="textshadow"/><category term="tracemonkey"/><category term="video"/><category term="webworkers"/></entry><entry><title>The March of Access Control</title><link href="https://simonwillison.net/2008/Nov/19/john/#atom-tag" rel="alternate"/><published>2008-11-19T08:40:34+00:00</published><updated>2008-11-19T08:40:34+00:00</updated><id>https://simonwillison.net/2008/Nov/19/john/#atom-tag</id><summary type="html">
    
&lt;p&gt;&lt;strong&gt;&lt;a href="http://ejohn.org/blog/the-march-of-access-control/"&gt;The March of Access Control&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
The W3C Access Control specification is set to become a key technology in enabling secure cross-domain APIs within browsers, and since it addresses a legitimate security issue on the web I hope and expect it will be rolled out a lot faster than most other specs.


    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/accesscontrol"&gt;accesscontrol&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/browsers"&gt;browsers&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/crossdomain"&gt;crossdomain&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/internet-explorer"&gt;internet-explorer&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/john-resig"&gt;john-resig&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/security"&gt;security&lt;/a&gt;&lt;/p&gt;



</summary><category term="accesscontrol"/><category term="browsers"/><category term="crossdomain"/><category term="internet-explorer"/><category term="john-resig"/><category term="security"/></entry><entry><title>CSSHttpRequest</title><link href="https://simonwillison.net/2008/Oct/23/csshttprequest/#atom-tag" rel="alternate"/><published>2008-10-23T18:25:43+00:00</published><updated>2008-10-23T18:25:43+00:00</updated><id>https://simonwillison.net/2008/Oct/23/csshttprequest/#atom-tag</id><summary type="html">
    
&lt;p&gt;&lt;strong&gt;&lt;a href="http://nb.io/hacks/csshttprequest/"&gt;CSSHttpRequest&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
Devious cross-domain Ajax hack that uses CSS for transport (@import rules with data URIs, but it still works in IE). Similar to JSONP but safer, since JSONP can cause arbitrary JavaScript to execute.

    &lt;p&gt;&lt;small&gt;&lt;/small&gt;Via &lt;a href="http://mike.teczno.com/snippets.html"&gt;Mike Migurski&lt;/a&gt;&lt;/small&gt;&lt;/p&gt;


    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/ajax"&gt;ajax&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/atimport"&gt;atimport&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/crossdomain"&gt;crossdomain&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/css"&gt;css&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/csshttprequest"&gt;csshttprequest&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/javascript"&gt;javascript&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/json"&gt;json&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/jsonp"&gt;jsonp&lt;/a&gt;&lt;/p&gt;



</summary><category term="ajax"/><category term="atimport"/><category term="crossdomain"/><category term="css"/><category term="csshttprequest"/><category term="javascript"/><category term="json"/><category term="jsonp"/></entry><entry><title>window.name Transport</title><link href="https://simonwillison.net/2008/Jul/23/sitepen/#atom-tag" rel="alternate"/><published>2008-07-23T16:25:51+00:00</published><updated>2008-07-23T16:25:51+00:00</updated><id>https://simonwillison.net/2008/Jul/23/sitepen/#atom-tag</id><summary type="html">
    
&lt;p&gt;&lt;strong&gt;&lt;a href="http://www.sitepen.com/blog/2008/07/22/windowname-transport/"&gt;window.name Transport&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
The cleverest use of the window.name messaging hack I’ve seen yet: Dojo now has dojox.io.windowName.send for safe, performant cross-domain messaging.


    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/crossdomain"&gt;crossdomain&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/dojo"&gt;dojo&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/javascript"&gt;javascript&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/windowname"&gt;windowname&lt;/a&gt;&lt;/p&gt;



</summary><category term="crossdomain"/><category term="dojo"/><category term="javascript"/><category term="windowname"/></entry><entry><title>xssinterface</title><link href="https://simonwillison.net/2008/Mar/5/xssinterface/#atom-tag" rel="alternate"/><published>2008-03-05T00:08:12+00:00</published><updated>2008-03-05T00:08:12+00:00</updated><id>https://simonwillison.net/2008/Mar/5/xssinterface/#atom-tag</id><summary type="html">
    
&lt;p&gt;&lt;strong&gt;&lt;a href="http://code.google.com/p/xssinterface/"&gt;xssinterface&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
Clever JavaScript library for implementing opt-in cross-domain messaging in JavaScript (allowing communication between pages and iframes on different domains). Uses HTML 5’s postMessage API if available, otherwise falls back on either Google Gears or a clever cookie hack.

    &lt;p&gt;&lt;small&gt;&lt;/small&gt;Via &lt;a href="http://ajaxian.com/archives/xssinterface-cross-domain-access-using-postmessage-and-more"&gt;Ajaxian&lt;/a&gt;&lt;/small&gt;&lt;/p&gt;


    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/crossdomain"&gt;crossdomain&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/html5"&gt;html5&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/javascript"&gt;javascript&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/postmessage"&gt;postmessage&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/xssinterface"&gt;xssinterface&lt;/a&gt;&lt;/p&gt;



</summary><category term="crossdomain"/><category term="html5"/><category term="javascript"/><category term="postmessage"/><category term="xssinterface"/></entry><entry><title>Cross-Site XMLHttpRequest</title><link href="https://simonwillison.net/2008/Jan/9/crosssite/#atom-tag" rel="alternate"/><published>2008-01-09T23:57:00+00:00</published><updated>2008-01-09T23:57:00+00:00</updated><id>https://simonwillison.net/2008/Jan/9/crosssite/#atom-tag</id><summary type="html">
    
&lt;p&gt;&lt;strong&gt;&lt;a href="http://developer.mozilla.org/en/docs/Cross-Site_XMLHttpRequest"&gt;Cross-Site XMLHttpRequest&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
“Firefox 3 implements the W3C Access Control working draft, which gives you the ability to do XMLHttpRequests to other web sites”—you can mark a document as available for cross-domain requests using either an Access-Control HTTP header or an XML processing instruction.

    &lt;p&gt;&lt;small&gt;&lt;/small&gt;Via &lt;a href="http://ejohn.org/blog/cross-site-xmlhttprequest/"&gt;John Resig&lt;/a&gt;&lt;/small&gt;&lt;/p&gt;


    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/accesscontrol"&gt;accesscontrol&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/ajax"&gt;ajax&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/crossdomain"&gt;crossdomain&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/firefox"&gt;firefox&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/firefox3"&gt;firefox3&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/http"&gt;http&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/javascript"&gt;javascript&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/john-resig"&gt;john-resig&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/mozilla"&gt;mozilla&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/w3c"&gt;w3c&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/xml"&gt;xml&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/xmlhttprequest"&gt;xmlhttprequest&lt;/a&gt;&lt;/p&gt;



</summary><category term="accesscontrol"/><category term="ajax"/><category term="crossdomain"/><category term="firefox"/><category term="firefox3"/><category term="http"/><category term="javascript"/><category term="john-resig"/><category term="mozilla"/><category term="w3c"/><category term="xml"/><category term="xmlhttprequest"/></entry><entry><title>hasAccount</title><link href="https://simonwillison.net/2007/Sep/28/as/#atom-tag" rel="alternate"/><published>2007-09-28T09:10:56+00:00</published><updated>2007-09-28T09:10:56+00:00</updated><id>https://simonwillison.net/2007/Sep/28/as/#atom-tag</id><summary type="html">
    
&lt;p&gt;&lt;strong&gt;&lt;a href="http://www.kryogenix.org/days/2007/09/28/hasaccount"&gt;hasAccount&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
Stuart proposes a light-weight API for letting any site know if a user has an account (and is signed in) on another service. I wouldn’t want to deploy this without being confident that my CSRF protection was in order.


    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/accounts"&gt;accounts&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/api"&gt;api&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/crossdomain"&gt;crossdomain&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/csrf"&gt;csrf&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/json"&gt;json&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/stuart-langridge"&gt;stuart-langridge&lt;/a&gt;&lt;/p&gt;



</summary><category term="accounts"/><category term="api"/><category term="crossdomain"/><category term="csrf"/><category term="json"/><category term="stuart-langridge"/></entry><entry><title>Google AJAX Feed API</title><link href="https://simonwillison.net/2007/Apr/18/google/#atom-tag" rel="alternate"/><published>2007-04-18T17:29:52+00:00</published><updated>2007-04-18T17:29:52+00:00</updated><id>https://simonwillison.net/2007/Apr/18/google/#atom-tag</id><summary type="html">
    
&lt;p&gt;&lt;strong&gt;&lt;a href="http://code.google.com/apis/ajaxfeeds/"&gt;Google AJAX Feed API&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
Simple cross-domain proxy to allow JavaScript to access any publically addressable syndication feed, with the same logic as Google Reader providing normalisation.

    &lt;p&gt;&lt;small&gt;&lt;/small&gt;Via &lt;a href="http://ajaxian.com/archives/google-announces-new-ajax-feed-api"&gt;Ajaxian&lt;/a&gt;&lt;/small&gt;&lt;/p&gt;


    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/ajax"&gt;ajax&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/atom"&gt;atom&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/crossdomain"&gt;crossdomain&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/feed"&gt;feed&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/google"&gt;google&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/google-reader"&gt;google-reader&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/javascript"&gt;javascript&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/rss"&gt;rss&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/syndication"&gt;syndication&lt;/a&gt;&lt;/p&gt;



</summary><category term="ajax"/><category term="atom"/><category term="crossdomain"/><category term="feed"/><category term="google"/><category term="google-reader"/><category term="javascript"/><category term="rss"/><category term="syndication"/></entry><entry><title>XMLHttpRequests using an IFrame Proxy</title><link href="https://simonwillison.net/2006/Aug/1/xmlhttprequests/#atom-tag" rel="alternate"/><published>2006-08-01T17:40:02+00:00</published><updated>2006-08-01T17:40:02+00:00</updated><id>https://simonwillison.net/2006/Aug/1/xmlhttprequests/#atom-tag</id><summary type="html">
    
&lt;p&gt;&lt;strong&gt;&lt;a href="http://dojotoolkit.org/~jburke/XHRIFrameProxy.html"&gt;XMLHttpRequests using an IFrame Proxy&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
Another scary hack abstracted away by Dojo.

    &lt;p&gt;&lt;small&gt;&lt;/small&gt;Via &lt;a href="http://blog.dojotoolkit.org/2006/07/31/cross-domain-xmlhttprequests-using-an-iframe-proxy"&gt;dojo.foo&lt;/a&gt;&lt;/small&gt;&lt;/p&gt;


    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/ajax"&gt;ajax&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/crossdomain"&gt;crossdomain&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/dojo"&gt;dojo&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/javascript"&gt;javascript&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/xmlhttprequest"&gt;xmlhttprequest&lt;/a&gt;&lt;/p&gt;



</summary><category term="ajax"/><category term="crossdomain"/><category term="dojo"/><category term="javascript"/><category term="xmlhttprequest"/></entry></feed>