How do widgets in Wookie get around same-origin restrictions for Ajax requests?
The Widget javascript object available to running widgets has a proxify() method for just this purpose. Proxify wraps the request in a call to a proxy server.
So proxify("http://example.org/myservice/")
results in a URL like http://my.wookie.org/proxy?url=http://example.org/myservice/&api_key=myapikey
Shindig also uses the same method for OpenSocial applications, and has its own bundled proxy service.
Wookie lets you use either; see the widgetserver.properties configuration file. This contains instructions for specifying either no proxy, the Wookie service, or the Shindig one (assuming its available).
Wookie's bundled proxy servlet is a bit stricter than the one bundled in Shindig, as it only allows text, xml or json (not binary), and can also be controlled using a whitelist set up by the Wookie administrator.
Wookie messed up my widget's <script> tags when I imported it! What happened?
Wookie uses HtmlCleaner to inject its own script tags into your Widget's start file when it is uploaded. This works fine in most cases; however if you use self-closing script tags things can go wrong. To avoid this always use regular HTML-style script tags e.g <script src="main.js"></script>
and not <scripr src="main.js"/>
.