2010-05-31 82 views
0

我正在使用Firefox擴展,並且在該擴展中,我嘗試使用AJAX在網頁上提交表單。我正在使用:如何使用XUL(Firefox擴展)Javascript提交經過驗證的HTML表單?

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

我繞了一個「隱藏」的IFRAME去......只有我無法弄清楚如何充分隱藏它,所以我只是做:

<iframe flex="1" maxheight="1" maxwidth="1" showcaret="false" 
     transparent="true" /> 

它在創造了一個白色的盒子窗口的較低角落,但其餘表格幾乎不可見。

我再發 「AJAX調用」 通過IFRAME搭配:

iframe.contentDocument.getElementById("someInput").value = "Some value"; 
iframe.setAttribute('src', "https://yourServer.com/yourPseudoAjaxHandler");