我正在开发Firefox扩展程序,在该扩展程序中,我尝试使用AJAX在网页上提交表单。我正在使用:
var request = Components.classes["@mozilla.org/xmlextras/xmlhttprequest;1"].createInstance(Components.interfaces.nsIXMLHttpRequest);
request.onload = loadHandler;
request.open("POST", url, true);
request.send(values);
发出请求,但它很有用。一个问题是表单上有一个身份验证令牌,我需要使用POST提交该令牌。我尝试单独进行GET以获取此令牌,但是当我发出第二个(POST)请求时,我的会话(显然)已更改,并且真实性令牌被视为无效。
有没有人知道如何使用XUL / Chrome Javscript来维护多个请求(所有“幕后”)的常量会话?我仍然是一个XUL n00b,所以我可能会有一个非常明显的替代方案(例如隐藏的IFRAME;我曾尝试过这种方法,但无法让它工作)。
答案 0 :(得分:0)
我最后选择了一个“隐藏的”IFRAME ......只是我无法弄清楚如何完全隐藏它,所以我只是这样做了:
<iframe flex="1" maxheight="1" maxwidth="1" showcaret="false"
transparent="true" />
它在窗口的下角创建了一个小白框,但其余表格几乎看不到。
然后我通过IFRAME进行了“AJAX调用”:
iframe.contentDocument.getElementById("someInput").value = "Some value";
iframe.setAttribute('src', "https://yourServer.com/yourPseudoAjaxHandler");