Using XUL for CGI Forms ?

Mozilla's XUL is not like HTML. XUL is itself the toolkit that makes Mozilla, the browser. Your preferences windows is made of XUL. Your bookmarks editor is made of XUL.

XUL doesn't 'send forms'. Commonly XUL is used to view (and navigate) through data; if a widget is used to change data, it is often changed in a backend store (eg: a local rdf preferences file or an inmemory-datasource) through javascript. It wasn't designed to be run online, 'remote', it was designed to run locally, on your harddisk, like a real application. Like thunderbird or firefox run.

If you do run it 'remote', you may need a lot of privileges that are only available to signed scripts and after a user has granted permissions. Some functions however, like the good old XMLHttpRequest, are available without restrictions. That allows you to use HTTP to communicate between your application and a server. Read more here: http://www.xulplanet.com/tutorials/xulqa/q_submit.html.

Still you are more likely to post SOAP requests or RDF data then a 'form' from XUL. XUL doesn't think in terms of CGI (name/value pairs) when it comes to it's interface. For example, how would you translate a nested foldout menu with checkable entries to CGI ?

This project extends the definitions of some of the XUL elements, making it possible to interpret them as one or more name/value/label triplets.

FormButton is an addon that translates multiple FormWidgets into a CGI querystring and send that through HTTP, much like a submitbutton on a form. And as you can see in the testsuites, it can be run 'remote','online'.