angular - HttpClient kan inte ignorera eller kringgå fel på självsignerat certifikat
Jag har försökt skicka POST-data till en server men jag fick ett fel, “net::ERR_CERT_INVALID”. Koden som visas nedan är vad jag försökte för att kringgå felet men det misslyckades fortfarande. Vänligen ge råd. Tack.
import { HttpClient, HttpParams } from '@angular/common/http';
createData(data): Promise<any> {
let post_message = data;
let header_node = {
Accept: 'application/json',
rejectUnauthorized: 'false',
}
// this.oauth_header.Authorization = 'Bearer ' + access_token;
const url_params = new HttpParams()
.set('rejectUnauthorized', 'false')
.set('requestCert', 'false')
.set('insecure', 'true')
return this.http.post('https://ip/createdata', post_message, {
headers: header_node,
}).toPromise();
Svar #1
Försök skicka headers som HttpHeaders till POST-metoden.
import { HttpClient, HttpParams, HttpHeaders } from '@angular/common/http';
createData(data): Promise<any> {
let post_message = data;
let header_node = {
headers: new HttpHeaders(
{ 'Accept': 'application/json' },
{ 'rejectUnauthorized': 'false' })
};
return this.http.post('https://ip/createdata', post_message, header_node).toPromise();
}
Svar #2
det har gått ett tag sedan detta inlägg publicerades, ändå stötte jag på ett liknande problem med en Keycloak-utvecklingsserver (självsignerat certifikat=ogiltigt), jag byggde en Angular 13+-app för att interagera med den. Eftersom jag antar att du fick detta fel från webbläsaren, låt mig säga att det inte är ett HttpClient- eller Angular-problem, utan webbläsaren som blockerar processen, så för framtida fall, här är "lösningen/omgåendet":
Gå till webbläsaren, skriv din server-URL/IP (den med ogiltigt certifikat), och sedan, när varningen för ogiltigt certifikat visas i webbläsaren, tillåt åtkomst så att webbläsaren kan navigera dit. Jag har beviljat åtkomst enligt bilden nedan men också i sekretess- och säkerhetsinställningarna (testat i Chrome) Exempel på webbläsarskärmdump
För mig fungerade det, hoppas det hjälper människor som jag några år senare som försöker lösa samma problem!
