Xulrunner浏览器通过loadURI()发布数据

时间:2015-02-09 06:24:05

标签: firefox-addon xul xpcom xulrunner

我让XULrunner打开一个浏览器窗口,从我的本地服务器加载一个XUL页面。我试图将一些数据发回我的PHP,但收效甚微。我只是在https://developer.mozilla.org/en-US/Add-ons/Code_snippets/Post_data_to_window

使用示例

这是我的javascript的样子

var params = obj.getAttribute('params');
var url = obj.getAttribute('url');
alert(params + ' - ' + url);

const Cc = Components.classes;
const Ci = Components.interfaces;
var stringStream = Cc['@mozilla.org/io/string-input-stream;1'].createInstance(Ci.nsIStringInputStream);

stringStream.data = params;

var postdata = Cc['@mozilla.org/network/mime-input-stream;1'].createInstance(Ci.nsIMIMEInputStream);
postdata.addHeader('Content-Type', 'application/x-www-form-urlencoded');
postdata.addContentLength = true;
postdata.setData(stringStream);

document.getElementById('mainbrowser').loadURI(url, null, postdata, null);

不要过多地混淆这个问题,这显然是更大局势的一部分。唯一未显示的部分是相关的,即obj的派生地。基本上它是一个临时的XUL元素,其中存储了所有参数以便于访问,因为我将它们传递给我的javascript中的不同函数。此外,params的格式为name1=data1&name2=data2

我知道它正在使用alert,因为它会输出我发送的参数。我也确定浏览器正在重新加载,因为每次提交时我都会清除表单中输入的数据。但是在我的PHP中,如果输出$_POST的内容则没有任何内容。

我确实使用XMLHttpRequest工作,但它并不适合我需要工作的方式。所以我希望让他的方法有效。

0 个答案:

没有答案