2017-07-27 53 views
0

我正在嘗試使用request.js庫爲節點發送與純文本作爲正文發佈請求,但我發現我發送到服務器正在接收一個空的身體,或者可能是一個身體組成一個空對象(記錄正文產生{})。
如果我使用郵差發送它,它工作正常,所以看起來很明顯,問題出在我使用request.js。 相關的功能(用URL改變)的代碼如下:如何使用request.js發送文本作爲請求正文?

function (queryText) { 
     const options = { 
      url: "https://myurl.com/", 
      body: queryText 
     }; 
     return new Promise ((resolve, reject) => { 
      request.post(options, (err, response) => { 
       if (err) reject(err); 
       else resolve(response); 
      }); 
     }); 
    } 

任何人知道我在做什麼錯在這裏?

+0

你確定'queryText'不是'undefined'? – RyanZim

+0

謝謝,但我確定;我甚至記錄options.body,並得到了我的預期。 – user1837296

+0

此外,我意識到日誌是{},所以這可能意味着包含空對象的主體,所以我相應地更新了它。我也使用字符串文字進行了測試,它仍然是空的。 – user1837296

回答

1

嘗試增加content-type頭,像這樣:

const options = { 
    url: "https://myurl.com/", 
    body: queryText, 
    headers: { 
     'content-type': 'text/plain' 
    } 
}; 
+0

謝謝,但這並沒有改變任何東西;另一方面,我仍然是我的請求主體。我還希望直接獲取身體,這似乎可以使用郵差。 – user1837296

+0

@ user1837296你在另一端使用了什麼技術? –

+0

另一個節點(快速)腳本。相關的代碼是: app.post( '/',(REQ,RES)=> { \t的console.log(req.body); \t app.pool.query(req.body) \t \t。然後(pgres => res.status(200).send(pgres)) \t \t .catch(err => res.status(500).send(「Accesser error:」+ err)); }); – user1837296

相關問題