DevServer代理绕过POST请求始终返回404(找不到)

时间:2018-09-24 02:45:30

标签: webpack webpack-dev-server

WebPack版本"version": "3.12.0" DevServer版本"version": "2.11.3"

下面的代码段是我配置DevServer代理的方式。它适用于GET请求,该请求返回了所需的样本数据,但不适用于feedback通过POST的端点。对POST的{​​{1}}请求总是返回/feedback。但是,当我将404更改为method === 'POST'时,它将重新开始工作。

我已确认通过在分支内扔一个GETPOST发送/feedback请求时分支是可以到达的。

Error('method: ${method}; url: ${url}')

再次尝试使用文档中的常规代理路由配置状态,

const proxyDummy = {
    '/': {
        bypass: (req) => {
            const { url, method } = req;

            if (method === 'GET') {
                switch (url) {
                    case '/data':
                        return SAMPLE_DATA.DATA; // JSON file path (Working)
                    default:
                        break;
                }
            }

            if (method === 'POST') {
                switch (url) {
                    case '/feedback':
                        return SAMPLE_DATA.FEEDBACK; // JSON file path
                    default:
                        break;
                }
            }

            return false;
        }
    }
};

1 个答案:

答案 0 :(得分:0)

还没有深入研究DevServer源代码,但是我认为使用上面的配置代码设置代理服务器不仅适用于GET请求,下面的代理服务器是express,因此请配置代理像下面这样的服务器工作正常

const proxyDummy = {
    '/': {
        bypass: (req, res) => {
            const { url, method } = req;

            if (method === 'GET') {
                switch (url) {
                    case '/data':
                        return res.send('');
                    default:
                        break;
                }
            }

            if (method === 'POST') {
                switch (url) {
                    case '/feedback':
                        return res.send();
                    default:
                        break;
                }
            }

            return false;
        }
    }
};