Мне нужно отправить письмо в URL в качестве параметра http.Я попробовал то же самое, используя почтальон, и код работает нормально, но с помощью следующего кода angular он не добавляет параметр email к URL.Я использую угловой 7 в качестве внешнего интерфейса.
http://localhost:8090/api/auth/forgot?email=abcd@gmail.com
При отправке почты используется адрес электронной почты abcd@gmail.com и вышеупомянутый URL.
Ниже приведен код внешнего интерфейса
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://localhost:8090/api/auth/forgot 400
HttpErrorResponse {headers: HttpHeaders, status: 400, statusText: "OK", url: "http://localhost:8090/api/auth/forgot", ok: false, …}
error: {timestamp: "2019-05-07T10:53:58.230+0000", status: 400, error: "Bad Request", message: "Required String parameter 'email' is not present", path: "/api/auth/forgot"}
headers: HttpHeaders {normalizedNames: Map(0), lazyUpdate: null, lazyInit: ƒ}
message: "Http failure response for http://localhost:8090/api/auth/forgot: 400 OK"
name: "HttpErrorResponse"
ok: false
status: 400
statusText: "OK"
url: "http://localhost:8090/api/auth/forgot"
Похоже, что параметры не были добавлены в URL.
Я отправил письмо в теле http, и оно отлично работает. Письмо доставлено.Так что проблема здесь в настройке параметров.
Заранее спасибо.