Hi everyone,
we are currently working on an opensocial application based on wicket.
Currently it is not possible to use the ajax functionality of wicket in
an opensocial app.
opensocial is based on iframes which run your html / js in a seperate
domain. If you build a widget for myspace.com for example, your html
will run in msappspace.com which will prevent ajax call due to cross
domain browser security. Luckily there is a opensocial method
"gadgets.io.makeRequest" to pull xml content from your backend which is
proxied through the opensocial container and basically works like an
ajax request.
so i created a bridge which replaces the XHR of wicket-ajax.js with an
implementation based on makeRequest. Without further ado:
<script type="text/javascript">
Wicket.Ajax.createTransport = function() {
return {
open: function(method, url, async) {
this.url = url;
},
setRequestHeader: function(key, value) {
},
send: function(body) {
var req_params = new Object();
req_params[gadgets.io.RequestParameters.CONTENT_TYPE] =
gadgets.io.ContentType.TEXT;
var req = gadgets.io.makeRequest("http://your.server.com" +
this.url + "&" + body, this.callback.bind(this), req_params);
},
callback: function(data) {
this.responseText = data.text;
this.status = 200;
this.readyState = 4;
this.onreadystatechange();
},
getResponseHeader: function(key) {
return null;
},
abort: function() {
}
};
}
</script>
By including this script below your wicket-ajax script in the opensocial
app you can use finally use ajax functionality directly on the canvas.
It should work completely transparent so no changes in your wicket code
should be required. Developing / porting wicket code to opensocial apps
should be a lot easier now :)
Note that this example does not support error handling, headers,
aborting and GET request also do not work completely. Adding this
functionality should be easy however. Feel free to use / modify /
publish the code as you like.
Best Regards,
Armin
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
For additional commands, e-mail: users-h...@wicket.apache.org