Ajax-вызов в node.js - PullRequest
       9

Ajax-вызов в node.js

0 голосов
/ 01 сентября 2018

Привет, ребята. У меня возникла проблема с использованием вызова ajax.

У меня два вызова ajax, поэтому первый ajax отправляет данные на сервер, а сервер проверяет и возвращает значение, и я хочу, чтобы возвращаемые значения были переданы другому вызову ajax, но, похоже, я ничего не передаю во втором вызове ajax.

Первый Ajax Call

function first(){

  $.ajax({
    url:window.location + '/first',
    type: 'post',
    data : $('form#first_form').serialize() //it will be like "name=Brad",
    success: function(response){   
      consol.log(response.name); // I checked, and it returns "Brad"

      second_ajax(response.name); //pass the returned value "Brad"

    },error: function(){

    }
  });
}

Второй вызов Ajax

function second(response_name){

  $.ajax({
    url:window.location + '/second',
    type: 'get',
    data : {username:response_name}//I am not sure how to write here, I want to send like 'username=Brad'
    success: function(result){ 
    },error: function(){

    }
  });
}

Сервер

 app.get('/second', (req, res) => {
          //get the username from the second ajax call
          var user_name = req.body.username;} //I am getting nothing here...

1 Ответ

0 голосов
/ 01 сентября 2018

req.body.username работает только если вы используете промежуточное ПО body-parser и запрос был POST. req.body будет анализируемым телом запроса POST.

Если данные находятся в строке запроса (например, в параметре запроса) GET, которая выглядит так, как ваша, то вы хотите:

req.query.username

И вы можете включить это так:

app.get('/second', (req, res) => {
      //get the username from the second ajax call
      var user_name = req.query.username;} //I am getting nothing here..
      console.log(user_name);
      res.send("got it");
});

Вот документ Express для req.query.

И в документе jQuery для $.ajax() вы можете видеть, что опция data помещает объекты в строку запроса.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...