Angular 6 htttp POST-将参数设置为URL中的查询字符串

时间:2018-09-12 17:05:02

标签: angular http-post angular6

我有一个基于asp .net核心样板的应用程序。 我需要从Angular 6应用发送HTTP POST参数。

我的服务如下:

public findProduct(productCode: string) {
const url_ = 'api/product/findProduct';
const params = new URLSearchParams();
params.set('productCode', productCode);

return this.http.post(url_, params, httpHeaders)
  .subscribe(
    result => {
      console.log(result);
    },
    error => {
      console.log('There was an error: ')
    }
  );

我已经从@ angular / http导入了URLSearchParams,但是仍然有同样的问题。我的POST URL错误,因为API期望这样的POST URL: http://localhost:21021/api/product/findProduct?productCode=1111 并查询字符串参数,例如: 产品代码:1111

但是我的看起来像这样: http://localhost:21021/api/product/findProduct 并设置请求有效负载(始终为空):

**{rawParams: "", queryEncoder: {}, paramsMap: {}}
paramsMap: {}
queryEncoder: {}
rawParams: ""**

我的httpHeaders是:     'Content-Type':'application / json',     'Accept':'text / plain'

我的问题是如何在此服务中设置预期的API POST参数?

1 个答案:

答案 0 :(得分:2)

We have to pass params as 3rd parameter for post request   


 public findProduct(productCode: string) {
    const url_ = 'api/product/findProduct';
    const params = new URLSearchParams();
    params.set('productCode', productCode);

    return this.http.post(url_,,params, httpHeaders)
      .subscribe(
        result => {
          console.log(result);
        },
        error => {
          console.log('There was an error: ')
        }
      );