2013-09-01 104 views
0

我需要在另一个服务器的firefox插件中执行POST方法,我一直在尝试使用不同的方法,并且在Google搜索后发现我应该使用请求来自我的main.js中的SDK模块。Firefox addon sdk请求模块带有效负载的POST方法

我用firefox v 23

我尝试使用铬模块

var xmlhttp = chrome.Cc["@mozilla.org/xmlextras/xmlhttprequest;1"] 
         .createInstance(chrome.Ci.nsIXMLHttpRequest); 

,但我得到NS_ERROR_FAILURE。我甚至在package.json中添加了权限

"permissions": { 
    "cross-domain-content": ["https:[some url]"] 
    } 

但它仍然给出相同的错误。

然后,我使用了请求模块,但到目前为止没有工作。我尝试了使用Request模块的GET方法,它工作正常。但是POST方法总是返回一个空状态和一个空响应。

我尝试通过浏览器http客户端做相同的请求,它工作正常!但是通过附加组件中的代码,它总是返回0.

请求设置标头并且当然有一个有效载荷。

var contentObject = {[Valid JSON Object]}; 

var myRequest = Request({ 
    url: "https://[some url]", 
    headers: { 
      "pragma": "no-cache" 
    }, 
    content: contentObject, 
    contentType: "application/json", 
    onComplete: function (response) { 
     console.log("Status: " + response.status); 
     console.log("Response json: " + JSON.stringify(response)); 
    } 
    }).post(); 

您的支持是非常感谢。我在互联网上发现的关于这个问题的资源非常少,他们中没有一个解决了我的问题。

回答

1

我猜服务器脚本需要contentObject的JSON字符串表示。但这不是请求模块处理对象的方式,它们转向键/值对。

因此改变

content: contentObject 

content: JSON.stringify(contentObject) 
+0

我也试过,并没有工作。我也尝试了一个GET请求,并没有工作。我怀疑它可能与SSL证书有关。如果您了解有关如何使用Firefox附加组件中的证书详细信息设置SSL证书的任何资源,请告诉我 – Tork

0

POST方法总是返回一个0状态和一个空的响应

这可能不是直接的答案,但我过去几天有同样的问题。通过不同供应商连接到网络的朋友尝试了相同的代码并且工作正常。另外,如果我没有记错,我可以连接到端口80,但不能连接到我发送POST请求的端口,以便端口可能在您连接的网络上被阻塞。

相关问题