使用httpClient的post方法在URL中传递参数

时间:2019-05-07 08:17:01

标签: angular http post parameters angular7

我需要在url中将电子邮件作为http参数发送。我使用邮递员尝试了同样的事情,并且代码工作正常,但是使用以下角度代码,它不会将电子邮件参数添加到url中。我正在使用angular 7作为前端。

ngx_http_proxy_module

使用邮递员和上述网址时,电子邮件将发送到abcd@gmail.com。

以下是前端代码

http://localhost:8090/api/auth/forgot?email=abcd@gmail.com

代码的组成部分

import { Injectable } from '@angular/core';
import { HttpClient } from '@angular/common/http';
import { PasswordInfo } from './password-info';

@Injectable({
  providedIn: 'root'
})
export class ResetPswdEmailService {

  constructor(private http: HttpClient) { }

  sendemail( emailinfo : String){//emailinfo is the email address
    let data = {email: emailinfo};
    return this.http.post<any>('http://localhost:8090/api/auth/forgot', {params:data});
  }


}

控制台错误

import { Component, OnInit } from '@angular/core';
import { ResetPswdEmailService } from '../Service/reset-pswd-email.service';

@Component({
  selector: 'app-forgotpassword',
  templateUrl: './forgotpassword.component.html',
  styleUrls: ['./forgotpassword.component.css']
})
export class ForgotpasswordComponent implements OnInit {

  constructor(private resetpswdemailservice : ResetPswdEmailService) { }

  mail : string;

  ngOnInit() {
  }

  onSubmit() {
    this.resetpswdemailservice.sendemail(this.mail)
    .subscribe(result =>{
    console.log(result);
    });
  }

}

似乎没有将参数添加到网址中。

我在http正文中发送了电子邮件,并且可以正常工作。电子邮件已送达。因此,这里的问题在于设置参数。

谢谢。

3 个答案:

答案 0 :(得分:0)

您可以尝试以下方法:

let params = new HttpParams();
params = Params.append('email', emailInfo);

return this.http.post<any>(`http://localhost:8090/api/auth/forgot`, { params: params });

答案 1 :(得分:0)

如果您的请求已发布。只是这样改变:

return this.http.post<any>(`http://localhost:8090/api/auth/forgot`, {email: emailinfo});

答案 2 :(得分:0)

我认为您想将电子邮件作为查询参数而不是作为请求正文发送,所以您必须这样做:

sendemail( emailinfo : String){//emailinfo is the email address
   let data = {email: emailinfo};
   return this.http.post<any>('http://localhost:8090/api/auth/forgot', null, {params:data});
}

否则,如果这正是您想要的,则需要知道这不是使用POST方法的正确方法,因为post数据意味着使用主体,因此您将其用作GET方法。