Не удается получить POST-запрос от node.js, когда сервер находится по указанному пути c - PullRequest
0 голосов
/ 25 марта 2020

У меня есть сайт, созданный на WordPress, и один из его маршрутов обслуживает сервер node.js. Предположим, https://www.wordpress.com/ является доменом, а маршрут node.js - https://www.wordpress.com/node.

Настройки службы хостинга (извините, что они не на английском языке sh)

На сервере узла запущен reactjs интерфейс, и этот интерфейс делает запросы к серверу через API выборки. URL запроса выглядит следующим образом https://www.wordpress.com/node/api/user-login. В моем коде реакции у меня есть это для создания запроса

res = await fetch("api/user-login/", {
  headers: {
     "Content-Type": "application/json",
     "Accept": "application/json"
  },
  method: "POST",
  body,
})

Я ожидал, что сервер POST, но вместо этого я получил это сообщение об ошибке

404 Not Found
Cannot POST //api/user-login/

Я не Знайте, почему две косые черты тоже Запрашивают заголовки . Обратите внимание, что ссылки, окрашенные в синий цвет, эквивалентны примеру wordpress.com/node

Мои маршруты. js и мой сервер. js файлы (на стороне сервера) выглядят так:

сервер. js

app.use(express.static(path.join(__dirname, 'build')))
app.use("/api", require("./src/routes"))
app.get('/', function(_req, res) {
  res.sendFile(path.join(__dirname, 'build', 'index.html'));
})

src /routes.js

const routes = express.Router()

routes.post("/user-login", login)
routes.get("/refresh-token", refreshToken)

module.exports = routes

Не знаю, почему я не могу публиковать сообщения на этом маршруте. Они находятся на одном сайте, поэтому Я думаю, CORS не является проблемой.

Еще один важный момент: сайт WordPress использует протокол https , и я попытался чтобы решить Cannot POST ошибку при настройке узла сервера с и без https, но ни один не работал (я использовал тот же сертификат и ключ WordPress).

Любой ответ здесь приветствуется, большое спасибо и я Прошу прощения за мой плохой Энгли sh, еще раз спасибо.

1 Ответ

0 голосов
/ 27 марта 2020

Я изменил эту строку на сервере. js, и это сработало, может быть, это проблема из-за вызова в API, я не знаю точно, почему он пытался выполнить POST для "//api "(с двумя слешами).

app.use("//api", require("./src/routes"))

В любом случае, спасибо всем за помощь

...