Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/video/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
webpack开发服务器-支持使用代理的POST、PUT和Delete方法_Webpack_Webpack Dev Server_Http Proxy_Http Proxy Middleware - Fatal编程技术网

webpack开发服务器-支持使用代理的POST、PUT和Delete方法

webpack开发服务器-支持使用代理的POST、PUT和Delete方法,webpack,webpack-dev-server,http-proxy,http-proxy-middleware,Webpack,Webpack Dev Server,Http Proxy,Http Proxy Middleware,我使用webpack dev server作为原始API URL的代理,以避免相关问题,并根据环境动态指向dev、UAT和模拟服务器URL 对于Mock dev-我更喜欢使用来自本地文件系统的JSON,它为所有GET请求提供服务 如何添加对“POST、PUT、DELETE”的支持,以便直接提供本地JSON? 一种可能的方法是重写HTTP请求方法以获取,因为我没有传递任何负载。但我找不到任何配置 以下是当前配置: if (IS_MOCK_SERVER) { devServer.proxy

我使用webpack dev server作为原始API URL的代理,以避免相关问题,并根据环境动态指向dev、UAT和模拟服务器URL

对于Mock dev-我更喜欢使用来自本地文件系统的JSON,它为所有GET请求提供服务

如何添加对“POST、PUT、DELETE”的支持,以便直接提供本地JSON?

一种可能的方法是重写HTTP请求方法以获取,因为我没有传递任何负载。但我找不到任何配置

以下是当前配置:

if (IS_MOCK_SERVER) {
    devServer.proxy = {
        '/api': {
            target: 'http://localhost:9090/data',
            secure: false,
            pathRewrite: function(req, options) {
                return req + '.json'
            }
        }
    }
} else {
    devServer.proxy = {
        '/api': {
            target: 'http://dev-server-url.com',
            secure: false
        }
    }
}
我试着深入研究,但在这个话题上没有得到太多的支持


Webpack dev服务器利用http代理中间件选择性地将请求代理到单独的(可能是外部的)后端服务器。

因为Webpack dev服务器在内部利用http代理中间件选择性地将请求代理到其他服务器

因此,我在以下地点开了一张票:

将在未来寻找更好的解决方案

但就目前而言,我找到了一种解决需求/问题的方法,在将其传递给Webpack dev服务器之前,先覆盖API Util本身中的HTTP方法

// Convert all the Request Method to Get ***ONLY IF*** MOCK-Server is running
if (process.env.IS_MOCK_SERVER) {
    payload.method = 'get';
}

由于Webpack dev服务器在内部使用http代理中间件来选择性地将请求代理到其他服务器

因此,我在以下地点开了一张票:

将在未来寻找更好的解决方案

但就目前而言,我找到了一种解决需求/问题的方法,在将其传递给Webpack dev服务器之前,先覆盖API Util本身中的HTTP方法

// Convert all the Request Method to Get ***ONLY IF*** MOCK-Server is running
if (process.env.IS_MOCK_SERVER) {
    payload.method = 'get';
}

经过多次修补,我发现了这个设置,我使用它在http代理中间件中使用onProxyReq事件将所有请求转换为“GET”。我在angular cli代理设置的上下文中使用它,但对于任何webpack dev服务器实例都可以使用它

onProxyReq: function(proxyReq, req, res) {
    // convert all api requests (POST/PUT/DELETE) to GET so they work in webpack dev server for mocking
    proxyReq.method =  'GET';
}

经过多次修改后,我找到了这个设置,我使用它在http代理中间件中使用onProxyReq事件将所有请求转换为“GET”。我在angular cli代理设置的上下文中使用它,但对于任何webpack dev服务器实例都可以使用它

onProxyReq: function(proxyReq, req, res) {
    // convert all api requests (POST/PUT/DELETE) to GET so they work in webpack dev server for mocking
    proxyReq.method =  'GET';
}