[英]Piping the response into a variable using streams | Axios | Node.js
[英]Node.js piping streams with ajax and nodes http module
我有一個帶有一些ajax的快速應用程序,調用一些遠程端點。 目前,我的api調用正在發布到我本地服務器上的端點。 Express偵聽這些端點並將請求傳遞給遠程服務器並解析響應。
這適用於我的大多數端點,除了一個POST方法,它需要代碼的查詢參數和Array [int]類型的主體。 每個請求對此端點的響應返回405.如果我直接在ajax請求中調用服務器端點,則返回成功。 這個問題對任何人都響了嗎?
這是數據流的樣子。
$.ajax({
type: "POST",
url: "/promos/validate?code=testing",
data: JSON.stringify([1]),
success: function(data) {
console.log(data)
}.bind(this),
error: function(xhr, status, err) {
console.log(status)
}.bind(this)
});
然后我們用快遞路線
router.post('/promos/validate', function(req, res) {
pipe(req, res).post(http://remoteUrl/promos/validate/code=testing);
});
在post方法中,使用http.request函數,該函數將以下對象作為options參數發送
{
protocol: 'http:',
query: '?code=testing',
host: 'remote-api.com',
port: 80,
hostname: 'remote-api.com',
href: 'http://remote-api.com?code=testing',
path: '/promos/validate',
method: 'POST',
headers: { 'Content-Type': 'application/json', 'Content-Length': 8 }
}
最后,我們使用write將請求主體流式傳輸到服務器。 每次發生這種情況,它都會返回405.任何想法?
兩件事:將內容類型設置為application / json所需的ajax請求,結果是請求命中405,因為當應該將查詢附加到'path'屬性選項時,查詢被分成了自己的屬性。
我通過查看Node.js文檔中的選項列表找到了這一點 - https://nodejs.org/api/http.html#http_http_request_options_callback
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.