我让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工作,但它并不适合我需要工作的方式。所以我希望让他的方法有效。