2017-01-08 12 views
0

Я не могу получить данные в методе http post экспресс-узла. Я отправляю данные из углового2. Когда я проверяю в разделе сети хром, полезная нагрузка видна, но одни и те же данные получаются пустыми по методу app.post. Пожалуйста, помогите мне.NodeJS HTTP post data empty

angular2 код

this.headers = new Headers(); 
    this.headers.append('Content-Type', 'x-www-form-urlencoded'); 

    let body = JSON.stringify({name:"Lionel Messi"}); 



return this.http 
.post('http://localhost:8081/save',body 
    ,this.headers); 

} 

nodejs-код

var bodyParser = require("body-parser"); 
app.use(bodyParser.urlencoded({ extended: false })); 
app.use(bodyParser.json()); 

app.post('/save', function (req, res) { 
console.log("Got a POST request for the homepage"); 

console.log(req.body);// output - {} 
res.send('Hello POST'); 
}) 

Network Section in Chrome....payload is proper

+0

Вы можете загрузить код – Sumeet

+0

попробуйте изменить 'Content-Type', 'х-WWW-форм-urlencoded' до 'Content-Type', 'приложения/JSON' – refactor

+0

попробовал, но не работает – user3107338

ответ

0

alert метод node.js не будет работать. Вы должны использовать console.log("Hello");

Вторая вещь, чтобы получить данные тела, используйте req.body.name

Мой способ написания кода, как показано ниже, и она работает

$http({ 
    method: 'POST', 
    url: 'http://localhost:8081/save', 
    data: {name:"Lionel Messi"} 
}) 
.success(function(data) { 
    return data 
    }) 
.error(function(error) { 
    // handle error 
}); 

Другой путь вы можете попробовать это:

$http.post('http://localhost:8081/save', {name:"Lionel Messi"}) 
.then(function(data) {return data}) 
.catch(function() {console.log("Error Occured");}); 
+0

извините, что было по ошибке, исправлено – user3107338

+0

Вы видите, что ваша подпись для обоих серверов и клиентов api отличается. Один из них/save, а другой -/api. @ user3107338 – Sumeet

+0

Исправлено, что ... очень жаль, что снова. api - это то же самое, даже данные отправляются должным образом от клиента, но nt может принимать на сервере – user3107338

0

Вы можете сделать это вот так: Предположим, что вы отправили имя пользователя и пароль из своего браузера почтовым методом.

app.post("/ url,function(request,response) 
{ var username=request.body.username; 
var password=request.body.password;}) 
+0

в запросе.body i get blank – user3107338

+0

Прежде всего убедитесь, что на стороне клиента вы правильно отправляете данные. –

+0

Если вы отправляете его на стороне клиента, вы можете легко получить его на сервере –

 Смежные вопросы

  • Нет связанных вопросов^_^