我需要在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正文中发送了电子邮件,并且可以正常工作。电子邮件已送达。因此,这里的问题在于设置参数。
谢谢。
答案 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方法。