在我的应用程序中,我需要一个按钮来打开Firefox (如果还没有打开),执行包含文件上传的POST请求,并向用户显示结果页面(用于进一步导航)。
到目前为止,我发现这似乎需要使用MozRepl或JSSH之类的Firefox扩展,这样我就可以从我的应用程序通过Telnet或SSH连接到进程。还有别的办法吗?我乐于接受好的建议...
然后,我需要使用content.XMLHttpRequest来创建POST请求:
var req = new XMLHttpRequest();
req.open("POST", "http://myurl", true);
// [...]
req.send()但是会有什么结果呢?不知何故,有一个从本地表单构建的File对象;但是我如何自己实例化和填充一个呢?如何在Firefox中显示页面结果?
我可以写一个临时文件到磁盘并从那里读取它,或者直接通过Javascript/MozRepl写文件内容,这两种方法对我来说都是可以接受的(但1)可能不适用于Javascript)。
提前谢谢你,-M。
发布于 2013-12-31 06:45:03
从命令行中,您可以打开一个页面,其中包含已填写的表单和触发此表单发布的JavaScript。XSS保护只适用于后台XMLHttpRequest,如果你正在张贴一个表单并自动将浏览移动到该页面,这是可以的。
所以你应该打开一个上传表单的网页。
但是你甚至不需要单独创建这个网页,你可以直接用JavaScript代替URL来设置它,就像bookmarklet一样:
firefox "javascript:'<html><body onload=\'document.forms[0].submit()\'><form action=\'http://www.example.com\' method=\'POST\'><input name=\'whatever\' value=\'whatever\' type=\'hidden\'></form></body></html>'"或者,您可以创建一个HTML文件,将GET重定向到POST,然后使用方法如下:
file:///C:/getToPost?name1=value1&name2=value2#http://url.com/service在at this superuser answer中描述了这种技术,并提供了此类文件的源代码。
请注意,此HTML文件不是强制为本地文件,它可以放在远程服务器上。但要考虑到,在远程文件浏览器将通知最终网站您的重定向页面作为HTTP Referer。
发布于 2012-06-30 00:47:43
您不能向服务器上包含发送到POST请求的AJAX代码的另一个页面发出GET请求吗?您可以随时使用任何url打开浏览器,该url可能包含查询字符串,而无需任何花哨的应用程序接口(如system('firefox.exe http://stackoverflow.com')。这样的话,你就不需要担心浏览器的交互了。
除此之外,为什么不在应用程序中发出POST请求并在应用程序中显示结果呢?
发布于 2012-06-30 00:47:54
从命令行执行以下操作:
firefox --new-window www.example.com将打开Firefox的一个新窗口,并导航到您指定的URL。听起来您可以只使用POST目标作为URL,但如果不是这样,您总是可以转到进行$.POST调用的页面。
https://stackoverflow.com/questions/11265744
复制相似问题