如何将 url 参数(查询字符串)传递给 ionic 3 上的 HTTP POST 请求

Pri*_*ank 3 http-post ionic2 ionic3 angular

我不知道如何使用查询字符串调用邮政服务。当我们使用post方法在 url 下运行时:https://test.data.com/myAPI/Login/authenticateUser?username=temp&password=Temp@123®id=''&versions=1&deviceType=1在邮递员中它工作得很好,但不要如何在ionic 3代码中传递查询字符串

在下面的代码中,当我们将查询字符串作为参数传递时,它给出了一个错误的请求错误。

return this.http.post("https://test.data.com/myAPI/Login/authenticateUser", params).subscribe((data: any) => {
  // let resp = data;
  // this.items = JSON.parse(JSON.parse(resp).Data);
  console.log('my data: ', data);
}, err => {
  console.log(err);
});
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

Dhy*_*yey 5

您需要传递一个附加到 url 的字符串,而不是传递一个对象,如下所示:

let urlSearchParams = new URLSearchParams();
urlSearchParams.append('username', 'temp');
urlSearchParams.append('password', "Temp@123");
urlSearchParams.append('regid', "");
urlSearchParams.append('versions', "1");
urlSearchParams.append('deviceType', "1");

return this.http.post("https://test.data.com/myAPI/Login/authenticateUser?' + urlSearchParams.toString(), null).subscribe((data: any) => {
    // let resp = data;
    // this.items = JSON.parse(JSON.parse(resp).Data);
    console.log('my data: ', data);
}, err => {
    console.log(err);
});
Run Code Online (Sandbox Code Playgroud)

您现在可以检查开发控制台的网络选项卡,那里的 URL 和邮递员应该是相同的。