【发布时间】:2019-11-04 18:27:38
【问题描述】:
我正在尝试使用 Vue CLI 创建的 Vue.js 项目来做 [事情]。 [Thing] 对这个问题不是很重要,所以为了简洁起见,我将省略它。当我为这个项目运行本地网络服务器时,我注意到了
$ npm run serve
GET 请求工作正常;但是 POST 请求给了我一个 404 - “无法 POST”。我需要能够同时做到这两点。
使用Express,只需在默认的router.get(...) 之外添加router.post(...),即可使用GET 和POST 提供相同的页面。但是,在 Vue.js 中,这似乎很困难。
我花了一些时间在Vue Router 上玩,但仔细阅读文档后,我没有找到一个配置选项来告诉它“这是如何响应 POST 请求”——它似乎需要 GET。
但也许我正试图将一个方形钉子敲入一个圆孔。 Vue.js 面向在浏览器中运行的应用程序,并且浏览器发送 GET 请求(目前我对表单提交不感兴趣......)其中 POST 请求往往更多是 Web 应用程序/集成/后端有点像。
你们怎么看 - 有什么明显的我遗漏的东西,还是我应该以“简单”的方式做到这一点并切换到 Express?
更新:我的“问题”不是 Vue.js,特别是 - 它是二进制 vue-cli-service,肯定 监听 GET,但不监听 POST。 (来自 Postman 的 GET 成功;来自 Postman 的 POST 失败。)如果我为部署而构建,webpack 会将项目转换为 HTML/JS/CSS,由不同的 Web 服务器提供服务,并且 POST 工作得很好——它只是在 vue 的开发模式下-cli-service 正在本地为我的应用程序提供服务,我无法使用 POST 请求。
是否有一种未记录的方法可以使 vue-cli-service 响应 POST 请求?我已经搜索了文档,但没有找到任何东西。我不确定如何让另一个 Web 服务器为 Vue.js 项目提供服务,因为 webpack 配置是...复杂的。
【问题讨论】:
-
Vue 是一个前端框架,而不是像 express 那样的后端框架。路由器可能只处理 GET 请求,因为其他任何东西看起来都更像一个 API
标签: javascript express vue.js single-page-application vue-router