【问题标题】:HTTP Post request not sending body or param data from ionicHTTP Post 请求未从 ionic 发送正文或参数数据
【发布时间】:2019-07-25 22:32:23
【问题描述】:

HTTP post 请求未向服务器发送正文或参数数据

如果这是一个重复的问题,请原谅我。我看过几个关于堆栈溢出的类似问题,但没有一个能解决我的问题。还尝试使用 GET 请求而不是 POST 请求,但仍无法发送正文数据。

客户端代码:

// ionic code
homeUrl: string = 'http://localhost:80';
let obj = {"name": "Guest"};
let response = this.httpClient.post(this.homeUrl + '/admin-signup', JSON.stringify(obj));
    response.subscribe(data => {
      console.log('response: ', data);
      //TODO: handle HTTP errors
    });

服务器端代码:

server.post('/admin-signup', (req, res) => {
  console.log('sign')
  console.log(req.body);
  // TODO: Process request
  res
    .status(200)
    .send(JSON.parse('{"message": "Hello, signup!"}'))
    .end();
});

【问题讨论】:

标签: javascript node.js ionic-framework


【解决方案1】:

首先,导入http客户端

import { HttpClient, HttpHeaders } from '@angular/common/http';

然后执行以下操作

const header = new HttpHeaders({
      'Content-Type': 'application/json',
       Accept: 'application/json'
       //api token (if need)
});    
const options = {
       headers: header
}
let response = this.httpClient.post(this.homeUrl + '/admin-signup', obj, options);
        response.toPromise().then(data => {
          console.log('response: ', data);
          //TODO: handle HTTP errors
        }).catch((err) =>{
           console.log('error', err);
        });

希望它能解决你的问题。

【讨论】:

  • 似乎取得了进展...我现在遇到了 CORS 错误...已被 CORS 策略阻止:Access-Control-Allow 不允许请求标头字段内容类型- 预检响应中的标头。
  • 您需要在服务器端添加 CORS。关注这篇文章。 alazierplace.com/2019/06/…
【解决方案2】:

我不熟悉离子 但我猜这是一个cors问题

你可以尝试使用 cors 吗?

const cors = require('cors');
app.use(cors());

【讨论】:

  • 谢谢,我会调查 cors。我会在服务器端使用它吗?服务器正在接收请求,但正文对象为空。这看起来像一个 cors 问题吗?
  • 呃,所以问题可能出在内容类型上?您可以尝试以这种方式发送请求吗? const headers = { 'Content-Type': 'application/json' }; this.httpClient.post(this.homeUrl + '/admin-signup', JSON.stringify(obj), headers);
  • 是的,您可以像这样发送请求。
  • @TheoScottVanZyl 带有标头的请求有效吗?
  • 谢谢,我会尝试使用标头方法...被另一项任务牵制了。
猜你喜欢
  • 2016-06-02
  • 2018-05-14
  • 2017-03-25
  • 2013-01-11
  • 2016-07-03
  • 2021-08-13
  • 2019-05-16
  • 2019-09-15
相关资源
最近更新 更多