2016-02-20 4 views
2
стороны

клиента, это то, что я происходит:Тела запроса всегда пусто на POST

function saveGrades() { 
    $.post("/savegrades", {classIndex: "classIndexId"}); } 

сторона сервера:

router.post('/savegrades', stormpath.loginRequired, function(req, res) { 
    console.log("Class index: " + req.body.classIndex); 
    console.log(req.body); 
    res.send(200); 
}); 

Моих bodyParser настроек являются следующим:

app.use(bodyParser.json()); 
app.use(bodyParser.urlencoded({ extended: true })); 

Независимо от того, что я пробовал, req.body пуст и не имеет classIndex. Что я делаю неправильно? Почему данные не отправляются на сервер?

Редактировать: По связанным вопросам я прошел почти все соответствующие ответы здесь и не могу найти решение. Кажется, что эти данные никогда не отправляются на сервер вообще. Тело всегда пусто, когда я проверяю его с помощью отладчика.

+0

http://stackoverflow.com/questions/5570747/jquery-posting-json –

+0

@ АндрейПопов Мне не удалось решить вопрос с ответами на этот вопрос. – iamtesla

+0

Я просто попробую связать еще один :) Вы видели этот (особенно ответ Олли)? http://stackoverflow.com/questions/5529685/post-doesnt-send-data-as-json-but-as-x-www-form-urlencoded-instead – Antenka

ответ

2

Можете ли вы проверить код,

app.use(bodyParser.json()); 
app.use(bodyParser.urlencoded({ extended: true })); 

реализованы задолго до того,

router.post('/savegrades', 

Основываясь на ваш комментарий,

Можете ли вы пытаетесь добавив Попытка добавления типа MIME (тип содержимого) в клиенте.

+0

Это так. Мой файл 'app.js' содержит элементы bodyparser и другие настройки. Последней строкой, которую я использую в 'app.js', является' app.use ('/', db) 'Где db - мой маршрутизатор (где расположен код сервера выше). – iamtesla

+0

обновил мой ответ –

+0

@Shathik спасибо! Теперь он корректно работает. Код на стороне клиента теперь: '$ .post ("/savegrades ', {classIndex: "classIndexId"},' json '); ' – iamtesla

1

Попробуйте и отправить данные через почтальонов, чтобы убедиться, что данные на самом деле пришедшего затем отправить его через функцию

var bodyParser = require('body-parser'); 
app.use(bodyParser.json()); // support json encoded bodies 
app.use(bodyParser.urlencoded({ extended: true })); // support encoded bodies 

app.post('/savegrades', function(req, res) { 
    console.log("Class index: " + req.body.classIndex); 
    console.log(req.body); 
    res.send(200); 
}); 
Смежные вопросы