首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >以编程方式打开Firefox并执行POST请求?[想法: MozRepl,建议?]

以编程方式打开Firefox并执行POST请求?[想法: MozRepl,建议?]
EN

Stack Overflow用户
提问于 2012-06-30 00:43:00
回答 3查看 2K关注 0票数 3

在我的应用程序中,我需要一个按钮来打开Firefox (如果还没有打开),执行包含文件上传的POST请求,并向用户显示结果页面(用于进一步导航)。

到目前为止,我发现这似乎需要使用MozRepl或JSSH之类的Firefox扩展,这样我就可以从我的应用程序通过Telnet或SSH连接到进程。还有别的办法吗?我乐于接受好的建议...

然后,我需要使用content.XMLHttpRequest来创建POST请求:

代码语言:javascript
复制
var req = new XMLHttpRequest();
req.open("POST", "http://myurl", true);
// [...]
req.send()

但是会有什么结果呢?不知何故,有一个从本地表单构建的File对象;但是我如何自己实例化和填充一个呢?如何在Firefox中显示页面结果?

我可以写一个临时文件到磁盘并从那里读取它,或者直接通过Javascript/MozRepl写文件内容,这两种方法对我来说都是可以接受的(但1)可能不适用于Javascript)。

提前谢谢你,-M。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-12-31 06:45:03

从命令行中,您可以打开一个页面,其中包含已填写的表单和触发此表单发布的JavaScript。XSS保护只适用于后台XMLHttpRequest,如果你正在张贴一个表单并自动将浏览移动到该页面,这是可以的。

所以你应该打开一个上传表单的网页。

但是你甚至不需要单独创建这个网页,你可以直接用JavaScript代替URL来设置它,就像bookmarklet一样:

代码语言:javascript
复制
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,然后使用方法如下:

代码语言:javascript
复制
file:///C:/getToPost?name1=value1&name2=value2#http://url.com/service

at this superuser answer中描述了这种技术,并提供了此类文件的源代码。

请注意,此HTML文件不是强制为本地文件,它可以放在远程服务器上。但要考虑到,在远程文件浏览器将通知最终网站您的重定向页面作为HTTP Referer。

票数 1
EN

Stack Overflow用户

发布于 2012-06-30 00:47:43

您不能向服务器上包含发送到POST请求的AJAX代码的另一个页面发出GET请求吗?您可以随时使用任何url打开浏览器,该url可能包含查询字符串,而无需任何花哨的应用程序接口(如system('firefox.exe http://stackoverflow.com')。这样的话,你就不需要担心浏览器的交互了。

除此之外,为什么不在应用程序中发出POST请求并在应用程序中显示结果呢?

票数 0
EN

Stack Overflow用户

发布于 2012-06-30 00:47:54

从命令行执行以下操作:

代码语言:javascript
复制
firefox --new-window www.example.com

将打开Firefox的一个新窗口,并导航到您指定的URL。听起来您可以只使用POST目标作为URL,但如果不是这样,您总是可以转到进行$.POST调用的页面。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11265744

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档