A look at the source code seems to show the POST is hard coded in in WFS protocol.
/* part from source with own comments v2.11: lib/OpenLayers/Protocol/WFS/v1.js */
read: function(options) {
OpenLayers.Protocol.prototype.read.apply(this, arguments);
options = OpenLayers.Util.extend({}, options);
OpenLayers.Util.applyDefaults(options, this.options || {});
var response = new OpenLayers.Protocol.Response({requestType: "read"});
/* this here seems to be changed - imo it constructs the post xml data */
var data = OpenLayers.Format.XML.prototype.write.apply(
this.format, [this.format.writeNode("wfs:GetFeature", options)]
);
/* hard coded? */
response.priv = OpenLayers.Request.POST({
url: options.url,
callback: this.createCallback(this.handleRead, response, options),
params: options.params,
headers: options.headers,
data: data
});
return response;
},
So my idea try to override the read function with your own WFS protocol implementation. The samples 'lib/OpenLayers/Protocol/WFS/v1_*_0.js' can be a good starting point.
You should call it with something like that.
wfs = new OpenLayers.Layer.Vector('Example of WFS layer', {
strategies: [new OpenLayers.Strategy.BBOX()],
visibility: true,
protocol: new OpenLayers.Protocol.WFS.v1_withGet(wfs_property)
});
But it seems to be the hard way :-D