簡體   English   中英

Node.js管道流與ajax和節點http模塊

[英]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.

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