Как вы отправляете аутентифицированную HTML-форму, используя XUL (расширение Firefox) Javascript? - PullRequest
0 голосов
/ 01 июня 2010

Я работаю над расширением 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; я пробовал это кратко, но не смог заставить его работать).

1 Ответ

0 голосов
/ 13 августа 2010

Я оказался с «скрытым» КАДРОМ ... только я не мог понять, как его полностью скрыть, поэтому я просто сделал:

<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");
...