Angular URLSearchParams不是构造函数

Angular URLSearchParams不是构造函数,angular,typescript,http-headers,angular-httpclient,Angular,Typescript,Http Headers,Angular Httpclient,我有一个Angular服务,我尝试发送一个HTTPPOST请求并设置 内容类型标题至应用程序/x-www-form-urlencoded 代码如下: import { HttpClient, HttpHeaders } from '@angular/common/http'; export class UserService { constructor(private http:HttpClient, private bodyParser:BodyParserService{}

我有一个Angular服务,我尝试发送一个HTTPPOST请求并设置
内容类型
标题至
应用程序/x-www-form-urlencoded

代码如下:

import { HttpClient, HttpHeaders } from '@angular/common/http';
export class UserService {
    constructor(private http:HttpClient, private bodyParser:BodyParserService{}

    public login(username:String, password:String){
        let body = this.bodyParser.parseBody({username: username, password: password})
        const options = {
            headers: new HttpHeaders({'Content-Type': 'application/x-www-form-urlencoded'})

        };
         this.http.post(`${environment.apiUrl}/login`, body, options)
        .subscribe((response:any) => {
           console.log("Response", response);
        })
    }

}
我正在使用Angular7。我使用Chrome浏览器,但FireFox上的问题依然存在

我得到以下错误:

ERROR TypeError: url__WEBPACK_IMPORTED_MODULE_2__.URLSearchParams is not a constructor
at BodyParserService.push../src/app/services/body-parser.service.ts.BodyParserService.parseBody (body-parser.service.ts:12)
at UserService.push../src/app/services/user-service.service.ts.UserService.login (user-service.service.ts:21)
at LoginModalComponent.push../src/app/nav-bar/nav-bar.component.ts.LoginModalComponent.login (nav-bar.component.ts:50)
at Object.eval [as handleEvent] (LoginModalComponent.html:19)
at handleEvent (core.js:19545)
at callWithDebugContext (core.js:20639)
at Object.debugHandleEvent [as handleEvent] (core.js:20342)
at dispatchEvent (core.js:16994)
at core.js:17441
at HTMLButtonElement.<anonymous> (platform-browser.js:993)
好吧,我发现了我的错误: URLSearchParams似乎已被弃用。我现在使用的是HttpParams:

const body = new HttpParams();

我在答案中添加了正确的解决方案。URLSearchParams似乎已被弃用。因此,我切换到了
HttpParams
,它似乎可以完美地工作

urlsearchparms已被弃用,您必须使用HttpParams。比如说

let params = new HttpParams()
  .set('grant_type', 'password')
  .set('username', username)
  .set('password', password);

params.toString();

您正在使用的
BodyParserService
是什么?更新了问题。服务获取一个对象并将其解析为字符串
let params = new HttpParams()
  .set('grant_type', 'password')
  .set('username', username)
  .set('password', password);

params.toString();