Страницы: 1
В расширении делаю асинхронный POST, но в send() передаю не многомегабайтную строку, а input stream. В результате в лисенере я не могу вызвать ни alert(), ни свои функции - они недоступны:
Error: Component returned failure code: 0x80004005 (NS_ERROR_FAILURE [nsIDOMWindowInternal.alert]
Есть возможность всё-таки использовать инпут стрим?
function get_file_input_stream(file_url) { var ios = Components.classes["@mozilla.org/network/io-service;1"] .getService(Components.interfaces.nsIIOService) var url = ios.newURI(file_url, null, null) if (!url || !url.schemeIs("file")) throw "Expected a file URL" var hFile = url.QueryInterface(Components.interfaces.nsIFileURL).file var istream = Components.classes["@mozilla.org/network/file-input-stream;1"] .createInstance(Components.interfaces.nsIFileInputStream) istream.init(hFile, -1, -1, false) return istream } var req = new XMLHttpRequest() req.open('POST', 'http://server/ajax.php', true) req.setRequestHeader('Content-Type', 'image/jpeg') req.onreadystatechange = function(event) { if(req.readyState == 4) alert('does alert works?') } var is = get_file_input_stream('file:///................') req.send(is) is.close()
Отредактировано zencd (05-02-2010 03:21:20)
Отсутствует
Страницы: 1