2012-07-21 28 views

回答

8

报价上一个类似的问题:

据我所知,萤火虫不能做到这一点。不过,本着Firebug的精神,有一个非常有用的Firefox扩展,名为Tamper Data。这应该能够做到你想要的。

它允许您监视浏览器发出的每个请求,并且可以打开一个选项,允许您在发送之前查看和编辑每个请求。

见其他答案的来源: How do I POST to a web page using Firebug?
另见:Using Firebug to send form data


上述工作,如果你只是想修改HTTP请求,但实际创建的HTTP请求,有一个Firefox扩展名为Poster,具有以下说明:

一个开发人员工具,用于交互使用网络服务和其他网络资源可让您发出HTTP请求,设置实体正文和内容类型。这使您可以与Web服务交互,检查结果...

12

事实上,你可以现在(因为火狐3.5)使从Firebug的纯XHR POST,任何领域,你就像在纯JavaScript该页面的主题有相同的限制。

的代码是一个有点冗长,而不是方便不惜一切但如果你想经常使用它(每次除非你保存它,并复制粘贴)

粘贴到控制台(它会打开命令编辑器自动,因为它是> 1号线)

var xhr = new XMLHttpRequest(); 
xhr.open("POST", "http://test/xhrtest.php?w=www"); 
xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); 
xhr.send("a=aaa&b=bbb"); 

请记住,在服务器端,你必须enable CORS,看到萤火虫(否则响应,请求将被发送,但你不会看到萤火虫的反应;尽管如此,你可以在Fiddler看到它);如果您在页面http://foo/somepage上打开了Firebug,则该URL将由XHR在HTTP引用标头字段中发送,并且必须允许该域通过Access-Control-Allow-Origin标头接收XHR响应,您可以在服务器配置中设置该标头,或者直接在页面中。

例在PHP中:

<?php 
header('Access-Control-Allow-Origin: *'); 
//you can adjust it more fine-grained, perhaps in an 'if' 
//header('Access-Control-Allow-Origin: ' . $_SERVER['HTTP_ORIGIN']); 
//header('Access-Control-Allow-Origin: http://foo'); 

echo $_POST['a'] . "\r\n"; 
echo $_POST['b'] . "\r\n"; 
echo $_GET['w'] . "\r\n"; 
?> 

然后你可以使用Firebug的Net选项卡,检查响应(以及在Console标签,如果你启用了Console > RIGHT CLICK > Show XMLHttpRequest选项)。

+1

使用[encodeURIComponent方法(https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/encodeURIComponent)如果你想使用的字符像在POST变量中的'&'。 – 2012-07-22 23:08:15