Я пытаюсь сделать [вещь] с проектом Vue.js, созданным с помощью Vue CLI. [Вещь] не является сверхважной для этого вопроса, поэтому для краткости я ее опускаю. Я заметил, когда запускаю локальный веб-сервер для этого проекта с помощью
$ npm run serve
что GET-запросы работают нормально; но POST-запросы дают мне 404 — «Cannot POST». Мне нужно уметь делать и то, и другое.
Используя Express, можно легко обслуживать одну и ту же страницу как с помощью GET, так и с помощью POST, просто добавив router.post(...)
в дополнение к router.get(...)
по умолчанию. Однако в Vue.js это кажется сложным.
Я провел некоторое время, играя с Vue Router, но внимательно изучив документацию, я не нашел конфигурацию возможность сказать ему «Вот как ответить на запрос POST» — кажется, требуется GET.
Но, может быть, я пытаюсь забить квадратный колышек в круглое отверстие. Vue.js ориентирован на приложения, которые запускаются в браузере, и браузеры отправляют запросы GET (на данный момент меня не интересует отправка форм...), где запросы POST, как правило, больше похожи на веб-приложение/интеграцию/серверную часть своего рода вещь.
Как вы думаете, ребята, есть ли что-то очевидное, что я упускаю, или я должен сделать это «простым» способом и переключиться на Express?
ОБНОВЛЕНИЕ. Моя «проблема» не в Vue.js, а в бинарной службе vue-cli, которая определенно прослушивает GET, но не POST. (GET от Postman завершается успешно, POST от Postman терпит неудачу.) Если я создаю для развертывания, webpack превращает проект в HTML/JS/CSS, который обслуживается другим веб-сервером, а POST работает нормально — просто в режиме разработки, где vue -cli-service обслуживает мое приложение локально, поэтому я не могу использовать POST-запросы.
Есть ли недокументированный способ заставить vue-cli-service отвечать на POST-запросы? Я просмотрел документацию, но ничего не нашел. Я не уверен, как заставить другой веб-сервер обслуживать проект Vue.js, потому что конфигурация веб-пакета... сложна.