簡體   English   中英

帶有有效負載的Firefox插件SDK請求模塊POST方法

[英]Firefox addon sdk Request module POST method with payload

我需要在另一個服務器的firefox插件中執行POST方法,我一直在嘗試使用不同的方式,在進行谷歌搜索之后,我發現我應該在main.js中使用SDK中的Request模塊。

我正在使用firefox v 23

我嘗試使用chrome模塊

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]"]
  }

但是它仍然給出相同的錯誤。

然后,我使用了“請求”模塊,但到目前為止還無法正常工作。 我嘗試了帶有請求模塊的GET方法,並且效果很好。 但是POST方法始終返回0狀態和空響應。

我嘗試通過瀏覽器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(); 

非常感謝您的支持。 我在互聯網上發現的有關此問題的資源很少,沒有一個解決了我的問題。

我猜服務器腳本期望contentObject的JSON字符串表示形式。 但這不是請求模塊對待對象的方式,而是將它們轉換為鍵/值對。

所以改變

content: contentObject

content: JSON.stringify(contentObject)

POST方法始終返回0狀態和空響應

這可能不是直接的答案,但是最近幾天我遇到了同樣的問題。 一個通過不同的提供商連接到網絡的朋友嘗試了相同的代碼,並且運行良好。 另外,如果我沒記錯的話,我可以連接到端口80,但不能連接到我發送POST請求的端口,因此該端口可能在您連接的網絡上被阻止。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM