Javascript Vue.js是否与服务POST请求不兼容?

Javascript Vue.js是否与服务POST请求不兼容?,javascript,express,vue.js,single-page-application,vue-router,Javascript,Express,Vue.js,Single Page Application,Vue Router,我正在尝试使用Vue CLI创建的Vue.js项目来完成[thing]。[事情]对这个问题不是特别重要,为了简洁起见,我将省略它。我注意到,当我使用 $npm运行服务 让请求正常工作;但是POST请求给了我一个404-“无法发布”。我需要两者都能做到 使用,除了默认的router.GET(…)之外,只需添加router.POST(…)就可以直接使用GET和POST为同一页面提供服务。然而,在Vue.js中,这似乎很困难 我花了一些时间玩,但仔细阅读文档,我还没有找到一个配置选项来告诉它“这是如何

我正在尝试使用Vue CLI创建的Vue.js项目来完成[thing]。[事情]对这个问题不是特别重要,为了简洁起见,我将省略它。我注意到,当我使用

$npm运行服务

让请求正常工作;但是POST请求给了我一个404-“无法发布”。我需要两者都能做到

使用,除了默认的
router.GET(…)
之外,只需添加
router.POST(…)
就可以直接使用GET和POST为同一页面提供服务。然而,在Vue.js中,这似乎很困难

我花了一些时间玩,但仔细阅读文档,我还没有找到一个配置选项来告诉它“这是如何响应POST请求”——它似乎需要GET

但也许我想把一个方形的钉子敲入一个圆孔。Vue.js面向在浏览器中运行的应用程序,浏览器发送GET请求(目前我对表单提交不感兴趣…),其中POST请求更像是一种web应用程序/集成/后端之类的东西

你们怎么想?我有什么明显的遗漏吗?或者我应该用“简单”的方式来做,然后切换到Express

更新:我的“问题”不是Vue.js,特别是-它是二进制Vue cli服务,它肯定会侦听GET,但不会侦听POST。(从Postman获取成功;从Postman发布失败。)如果我构建部署,webpack会将项目转换为HTML/JS/CSS,由不同的web服务器提供服务,发布工作正常-只是在开发模式下,vue cli服务在本地为我的应用程序提供服务,我无法使用发布请求


是否有未经记录的方法使vue cli服务响应POST请求?我翻遍了文件,但什么也没找到。我不知道如何让另一台web服务器为Vue.js项目服务,因为网页包配置非常复杂。

Vue路由器没有接收(GET)请求和响应,它只是读取当前URL并插入相应的组件。总之,不,没有POST请求处理程序。。。我认为它甚至不处理GET请求,只是读取看起来像GET请求的URL

如果您试图在应用程序内的页面之间发布,Vuex就是您想要的。 如果你试图从外部发布到你的应用程序,让一个实际的服务器监听你可以ping的请求会更容易(ie Express)


可能有一种方法可以在你的应用程序中使用。它可以监听POST请求的响应,所以如果它在监听,我不明白为什么它不能接收。然而,我怀疑你必须从你的应用程序运行的机器上监听一个端口,这将是一个重大的安全问题(如果客户端的浏览器/操作系统/防病毒软件允许的话)。

我发布这个问题已经快两周了,但我甚至没有发布这个问题,直到我自己一周都在努力解决这个问题。经过长时间的脑力劳动和更多的死胡同,我终于找到了一个解决办法,而这些死胡同对我的血压来说是不健康的。这是:

  • 我决定也许我的最佳选择是看,我碰巧注意到它包括文档
  • docs/config下的README.md文件中关于devserver选项的描述有点稀疏,但它也提到支持webpack dev server的所有选项。哦
  • 显示一个devserver.before选项,该选项允许您访问Express app对象并向其添加您自己的自定义中间件
  • 这允许您截取帖子并将其重定向为GET
  • 他和我有着完全相同的问题,最终我做到了。(请注意,他使用了devserver.setup,它也做了同样的事情,但不推荐使用devserver.before。)在vue.config.js中,包括

  • Vue是一个前端框架,而不是像express那样的后端框架。路由器可能只提供GET请求,因为其他任何东西看起来都更像APIT接收GET请求。我可以向邮递员证实这一点:获得成功;帖子失败了,这只是语义学。请求/响应模式是客户端和服务器之间发生的事情。通常,GET请求从服务器请求特定资源,然后服务器提供该资源。Vue的工作方式并不完全相同,因为整个应用程序都是“提供”的,然后在客户端呈现,Vuex在客户端管理一个小窗口。但是,如果您使用Nuxt,您可以在服务器端执行此操作,并获得一个典型的get模式。好主意。如果我错了,请纠正我的错误,但这只适用于使用webpack作为服务器的开发环境?那么在生产中不起作用?我相信这是正确的。就我而言,最小化的产品构建工作得很好,只是上传新版本和看到它生效之间需要5-7分钟。对于一个真正的部署来说并不可怕,但是在开发的时候是无法忍受的。迈克,谢谢你在StackOverflow上这么直言不讳。你“大声”解决你的问题,真的帮了我一个类似的难题。@coltoneakins,不客气!很高兴我能帮助别人。
    devServer: {
        before: function(app) {
            app.post('/about.html', function(req, res) {
              res.redirect('/about.html');
            });
        },
    }