Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/webpack/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请求_Post_Webpack_Webpack Dev Server - Fatal编程技术网

如何让webpack开发服务器接受POST请求

如何让webpack开发服务器接受POST请求,post,webpack,webpack-dev-server,Post,Webpack,Webpack Dev Server,在我的项目中,我称之为: $ webpack-dev-server --history-api-fallback 它启动了一个express服务器(我假设是这样的),该服务器位于localhost:8080上 它工作得很好,除了我想通过POST将表单提交到一个iframe加载我的应用程序本地主机:8080正在开发中,其他内容正在生产中 我不希望在开发中使用POST数据,但在生产中,它需要POST 但是,当我尝试使用POST时,它找不到POST/ 是否有配置选项或其他解决方案允许我使用网页开发服

在我的项目中,我称之为:

$ webpack-dev-server --history-api-fallback
它启动了一个express服务器(我假设是这样的),该服务器位于
localhost:8080

它工作得很好,除了我想通过POST将表单提交到一个iframe加载我的应用程序<代码>本地主机:8080正在开发中,其他内容正在生产中

我不希望在开发中使用POST数据,但在生产中,它需要POST

但是,当我尝试使用POST时,它
找不到POST/


是否有配置选项或其他解决方案允许我使用
网页开发服务器
?(我真的不想为此编写自己的服务器)。

您需要的是。贝娄你可以看到我的配置为它。在
setup(app)
下,您可以添加“几乎”任何您想要的内容:

module.exports={
...,
开发服务器:{
是的,
港口:3000,
公共路径:“/”,
设置(应用程序){
var bodyParser=require('body-parser');
use(bodyParser.json());
app.get(“/get/some data”),函数(req,res){
控制台日志(req);
res.send(“从网页包开发服务器获取发送的res”)
})
app.post(“/post/some data”),bodyParser.json(),函数(req,res){
控制台日志(请求主体);
res.send(“从网页包开发服务器发送的POST res”)
})
}
}
}
编辑:
如果你想看得更清楚的话,我已经推出了一款极简版的github

@cowCrazy讲述了故事的一半,但没有展示如何在POST中对GET做出同样的回应,这正是我所寻找的

在网页包配置中,您可以执行以下操作:

module.exports = {
    ...,
    devServer: {
        setup(app) {
            app.post('*', (req, res) => {
                res.redirect(req.originalUrl);
            });
        },
    }
}
这将只获取POST URL并使用相同的URL重定向,使其成为GET请求


它不会出现服务器错误,而是使用GET重定向。

通过将POST请求转换为GET请求来检查它是否解决了您的问题:

bypass: function (req, res, proxyOptions) {

      const url = req.url;
      req.method = 'GET';
      if (url.indexOf('?') > -1) {

        return url.replace('?', '.json?');
      } else {

        return url + '.json';
      }
    }

webpack.devServer.setup.js中有什么?我不擅长express或
webpack dev server
的使用。在那里你可以构建一个完整的express服务器,你可以使用它来拥有
app.post
和其他api功能。在我的项目中,我几乎只复制了prod server.js,而没有访问
express
var。你能给我一些示例代码吗?我的后端不是express应用程序,我不知道应该如何响应请求。@KevinBeal我编辑了代码,还附加了github repo。希望对您有所帮助。根据网页包文档-“此选项已被弃用,取而代之的是before,并将在v3.0.0中删除。”根据文档
设置
被弃用,取而代之的是before