Почему данные не получены Node.js через POST-запрос?

#javascript #jquery #node.js

#javascript #jquery #node.js

Вопрос:

Итак, у меня есть эта функциональность. Клиент отправляет данные через функцию post jquery

 $.post(currentURL   "/api/tables", newReservation,

  function(data) {

    if (data == true) {
      alert("Yay! You are officially booked!")
    }

    if (data == false) {
      alert("Sorry you are on the waitlist")
    }

    $('#reserve_name').val("");
    $('#reserve_phone').val("");
    $('#reserve_email').val("");
    $('#reserve_uniqueID').val("");

  });
  

Затем Node.js получает ли он его здесь

 app.post("reserve/api/tables", function(req, res) {
  var newentry = req.body;

  console.log(newentry);

  entries.push(newentry);

  res.json(newentry);
});
  

Однако console.log выдает мне эту ошибку

jquery.js: 9631 СООБЩЕНИЕ http://localhost:8080/api/tables 404 (Не найден)

Комментарии:

1. Что находится reserve внутри app.post() . Вы не отправляете /reserve/api/tables

2. Я пытался использовать только api / таблицы. Это тоже не работает. Попытался объединить текущее dirname с api / tables, и это тоже не сработало

3. Что такое currentURL ?

4. Я думаю, вам нужно добавить reserve при выполнении запроса из jQuery

5. Используете ли вы Express.js или похожий? Лучше всего пометить его, если да.

Ответ №1:

Потому что вы выполняете запрос на URL: http://localhost:8080/api/tables , но ваш сервер ждет вас по адресу: «reserve/api/ tables».

Попробуйте настроить таргетинг: http://localhost:8080/reserve/api/tables

Комментарии:

1. Мы не знаем, что внутри currentURL .

2. Я безрезультатно исключил currentURL из уравнения

Ответ №2:

в вашей маршрутизации указан локальный хост: 8080/reserve/api/tables,

удалите «резервную» маршрутизацию

Комментарии:

1. Мы не знаем, что внутри currentURL .

2. Я безрезультатно исключил currentURL из уравнения

Ответ №3:

Вам не хватает косой черты в
app.post("reserve/api/tables", function(req, res) {
так и должно быть
app.post("/reserve/api/tables", function(req, res) {
или
app.post("/api/tables", function(req, res) {
как отредактировано позже