Angular2。 HTTP.POST不起作用

时间:2016-05-21 12:37:01

标签: node.js http angular ionic2 angular2-services

这是我的HTTP服务:

    postData(name, country) {
  var body = JSON.stringify({
    "name":name,
    "country":country
  });
  console.log(name);     // it outpus the correct value
  console.log(country);  // it outpus the correct value
  return this.http.post('http://178.62.58.150:5000/api/cosmo/',body)
    .map(res => {
      res.text();
      console.log(res.text());

    })
    .do(data => {
      this.data = data;
      // console.log(this.data);
    })
}

似乎它没有将正文发送到POST请求。

这些输出正文的正确值

console.log(name);     
console.log(country); 

但是

console.log(res.text());

它给我一个数据库验证错误,指出正文国家是必需的......

如何正确发送身体?

P.S。 :我用POSTMAN对它进行了测试,它确实有效!

2 个答案:

答案 0 :(得分:0)

看起来问题在于构建post params,尝试

var body = JSON.stringify({
  name: name,
  country: country
})

请注意,我的哈希键不是字符串,因为stringify会将JavaScript对象转换为JSON字符串。

如果这不起作用,请使用Google Developer工具查看您的请求发送到服务器的内容。

答案 1 :(得分:0)

我添加了

let headers = new Headers();
 headers.append("Content-Type","application/json");

return this.http.post('http://178.62.58.150:5000/api/cosmo/',body,{headers:headers})