簡體   English   中英

HTTP POST 正文未附加在使用 http-proxy-middleware 的代理請求中

[英]HTTP POST body not attached in the proxied request using http-proxy-middleware

我正在開發一個 React 應用程序,我需要向遠程 API 發出 POST 請求,在其中設置header("Access-Control-Allow-Origin: *"); 禁用 CORS 策略。

但是當我聯系服務器時,出現了一些 CORS 策略問題,所以我通過 http-proxy-middleware 設置了代理服務器。

問題是請求被正確代理但沒有正文,我不明白為什么。 有人能幫我嗎?

這是 setupProxy.js:

    const bodyParser = require('body-parser')
    
    module.exports = function(app) {
    
       // restream parsed body before proxying
     var restream = function(proxyReq, req, res, options) {
       if (req.body) {
           let bodyData = JSON.stringify(req.body);
           // incase if content-type is application/x-www-form-urlencoded -> we need to change to application/json
           proxyReq.setHeader('Content-Type','application/json');
           proxyReq.setHeader('Content-Length', Buffer.byteLength(bodyData));
           // stream the content
           proxyReq.write(bodyData)
           proxyReq.end();
           
       }
     }
     
     app.use(bodyParser.json());
     app.use(bodyParser.urlencoded());
     app.use(
       '/api/*',
       createProxyMiddleware({
         target: 'https://<domain>',
         changeOrigin: true,
         pathRewrite: {
           '^/api/': '<path>'
         },
         logLevel:'debug',
         onProxyReq: restream,
         
       })
     );  
    
     
    };

系統詳情:

macOS 大蘇爾 v11.5.2
節點 v16.13.2

http-proxy-middleware 配置的詳細信息:

├── http-proxy-middleware@2.0.4
└─┬ react-scripts@5.0.0
  └─┬ webpack-dev-server@4.7.4
    └── http-proxy-middleware@2.0.4 deduped

我也一樣。 我在這里找到了一個解決方案: https://npmmirror.com/package/http-proxy-middleware/v/1.2.0-beta.1

將此添加到您的 createProxyMiddleware 參數中:

onProxyReq: fixRequestBody

PS:我認為這與http-proxy-middleware 中的 60 秒超時相同

暫無
暫無

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

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