2011-06-01 82 views
2

我正在寻找一个HTTP POST请求到一个服务器上的PHP脚本从一个Firefox扩展,并获得JSON作为回报。我希望在一个请求中发送到服务器的数据量对于GET请求来说太大(由于实际的URL长度限制)。因此,我无法使用GET请求使用JSONP。从Firefox扩展通信到服务器

是否可以访问任何本地Firefox浏览器组件来向服务器发送POST请求或者必须使用XMLHttpRequest? (这个扩展正在为Firefox 4开发)

+0

XMLHttpRequest是最简单的方法。看起来你不想使用XMLHttpRequest,但为什么不呢? – MatrixFrog 2011-06-01 20:13:39

+0

@MatrixFrog:执行跨域请求时存在来源限制。 JSONP通常是通过不同的域进行请求的解决方案,但是它的局限性在于它是一个GET请求,它对传输的数据有固有的限制(由于URL长度的实际限制)。 URL长度的一般限制约为2,000个字符。理想情况下,我想要做一个POST请求(以避免提交数据的限制)。 – Kyle 2011-06-01 20:22:19

+2

当您从特权代码(如Firefox插件)制作XMLHttpRequests时,这些限制不适用。 – MatrixFrog 2011-06-01 20:25:28

回答

2

从您的评论:

进行跨域请求时,有原产地的限制。 JSONP通常是通过不同的域进行请求的解决方案,但是它的局限性在于它是一个GET请求,它对传输的数据有固有的限制(由于URL长度的实际限制)。 URL长度的一般限制约为2,000个字符。理想情况下,我想要做一个POST请求(以避免提交数据的限制)。

幸运的是,当使用来自特权代码的XMLHttpRequest(如Firefox扩展)时,那些原始限制不适用,因此您可以使用它。如果它不起作用,留下更多评论或开一个新问题。

https://developer.mozilla.org/En/Using_XMLHttpRequest