ค้นหาเว็บไซต์

angular - HttpClient ไม่สามารถเพิกเฉยหรือข้ามข้อผิดพลาดใบรับรองที่เซ็นด้วยตัวเองได้


ฉันได้พยายามส่งข้อมูล POST ไปยังเซิร์ฟเวอร์ แต่ได้รับข้อผิดพลาด "net::ERR_CERT_INVALID" โค้ดดังที่แสดงด้านล่างคือสิ่งที่ฉันพยายามใช้เพื่อหลีกเลี่ยงข้อผิดพลาด แต่ก็ยังล้มเหลว กรุณาช่วยแนะนำด้วย ขอบคุณค่ะ

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();

คำตอบ #1

ลองส่ง headers เป็น HttpHeaders ไปยังเมธอด POST.

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();
}

คำตอบ #2

ก็ผ่านมาแล้วสักระยะนับตั้งแต่โพสต์นี้ถูกโพสต์ อย่างไรก็ตาม ฉันเจอปัญหาแบบเดียวกันกับเซิร์ฟเวอร์ Keycloak สำหรับนักพัฒนา (ใบรับรองเซ็นเอง=ไม่ถูกต้อง) ฉันกำลังสร้างแอป Angular 13+ เพื่อโต้ตอบกับมัน เนื่องจากฉันถือว่าคุณได้รับข้อผิดพลาดนี้จากเบราว์เซอร์ ให้ฉันบอกว่า นี่ไม่ใช่ปัญหาของ HttpClient หรือ Angular แต่เป็นเบราว์เซอร์ที่บล็อกกระบวนการ ดังนั้นสำหรับกรณีในอนาคต นี่คือ "วิธีแก้ปัญหา/การข้าม":

ไปที่เบราว์เซอร์ พิมพ์ URL/IP ของเซิร์ฟเวอร์ของคุณ (ซึ่งมีใบรับรองไม่ถูกต้อง) แล้วเมื่อมีการแจ้งเตือนใบรับรองไม่ถูกต้องปรากฏขึ้น ให้อนุญาตการเข้าถึงเพื่อให้เบราว์เซอร์ไปยังที่นั่น ฉันได้อนุญาตการเข้าถึงตามภาพด้านล่าง แต่ก็ได้ทำในการตั้งค่าความเป็นส่วนตัวและความปลอดภัยด้วย (ทดสอบใน Chrome) ตัวอย่างสกรีนช็อตของเบราว์เซอร์

สำหรับฉันมันใช้ได้ หวังว่าจะช่วยคนที่เหมือนฉันในอีกไม่กี่ปีต่อจากนี้ที่พยายามแก้ปัญหาเดียวกัน!

บทความที่เกี่ยวข้อง