POST запрос от клиента серверу Nodejs

323
07 марта 2018, 09:23

NodeJs Express App.

Необходимо передать массив от клиента серверу.

На клиенте формирую массив:

var path = [];
for(var i = 0; i < someObject.lenght; i++)
{
    path.push({ "path_x" : someObject[i].getAttribute("d")});
}

Отправляю на сервер:

$.ajax({
    type: 'POST',
    url: '/getPaths',
    data: path,
    success: function (resp) {
        alert(resp);
    },
    error: function (xhr, str) {
        alert('Возникла ошибка: ' + xhr.responseCode);
    }
});

На сервере пытаюсь получить ответ: /route/index.js:

var router = express.Router();
router.post('/getPaths',function(req, res, next){
    console.log(req.body);
    res.end();
});

На сервере получаю ответ, что-то вроде этого:

{ 'undefined': '' }

Как правильно передать массив на сервер?

Answer 1

https://ru.wikipedia.org/wiki/JSON#Синтаксис

так как вы используете JQuery не гарантирую, но попробуйте передать переменную qwa в объект data

let arr = [1, 2, 3]
let obj = {
    data: arr
}
let qwa = JSON.stringify(obj)
// console.log(qwa)//{"data":[1,2,3]}
// console.log(typeof qwa)//string
$.ajax({
    type: 'POST',
    url: '/getPaths',
    data: qwa,
    success: function (resp) {
        alert(resp);
    },
    error: function (xhr, str) {
        alert('Возникла ошибка: ' + xhr.responseCode);
    }
});

если не поможет, добавьте к вопросу метку JQuery, и да, высока вероятность что такой вопрос уже задавался

READ ALSO
Ionic, как принять push в открытом приложении на iOS?

Ionic, как принять push в открытом приложении на iOS?

Есть приложение на ionic 3, подключил push сообщения, на android все работает отлично как в открытом приложении так и в свернутом видено на iOS пуши...

298
Как запустить Opera через Selenium Webdriver на Javascript?

Как запустить Opera через Selenium Webdriver на Javascript?

Собственно, вопрос в топикеПробовал заменить все chrome на opera в шаблоне на Хром, но кажется нюанс в том чтобы указать Binary

257
Как подключить свой JavaScript к чужому сайту?

Как подключить свой JavaScript к чужому сайту?

У меня нестандартная задачаВопрос: Как подключить к сайту свой JavaScript ?

239
Почему ошибка WrappedComponent lacks a handleClickOutside(event) function for processing outside click events

Почему ошибка WrappedComponent lacks a handleClickOutside(event) function for processing outside click events

Есть компонент который рендерит компонент SocialAuth

311