Rumah > hujung hadapan web > tutorial js > Mengendalikan dan menyahpepijat isu CORS (Cross-Origin Resource Sharing) dalam Aplikasi NestJS

Mengendalikan dan menyahpepijat isu CORS (Cross-Origin Resource Sharing) dalam Aplikasi NestJS

PHPz
Lepaskan: 2024-07-27 16:48:37
asal
1205 orang telah melayarinya

Handling and debugging CORS (Cross-Origin Resource Sharing) issues in a NestJS Application

Mengendalikan dan menyahpepijat isu CORS (Cross-Origin Resource Sharing) dalam apl NestJS boleh menjadi agak rumit. CORS pada asasnya ialah mekanisme keselamatan yang memastikan bahagian hadapan dan bahagian belakang anda boleh bercakap antara satu sama lain dengan betul, terutamanya apabila mereka berada di domain yang berbeza. Berikut ialah ringkasan tentang cara menangani CORS dalam NestJS dan menyelesaikan masalah biasa:

1. Mendayakan CORS dalam NestJS

Untuk mendayakan CORS dalam aplikasi NestJS, anda perlu mengkonfigurasinya dalam fail main.ts di mana aplikasi NestJS dijadikan instantiated. Anda boleh mendayakan CORS dengan menggunakan kaedah enableCors yang disediakan oleh NestJS NestFactory.

Contoh Konfigurasi:

import { NestFactory } from '@nestjs/core';
import { AppModule } from './app.module';

async function bootstrap() {
  const app = await NestFactory.create(AppModule);

  // Enabling CORS with default settings
  app.enableCors();

  // Enabling CORS with specific settings
  app.enableCors({
    origin: 'http://your-frontend-domain.com', // Allow requests from this domain
    methods: 'GET,HEAD,PUT,PATCH,POST,DELETE', // Allow these methods
    allowedHeaders: 'Content-Type, Authorization', // Allow these headers
    credentials: true, // Allow credentials (cookies, HTTP authentication)
  });

  await app.listen(3000);
}
bootstrap();
Salin selepas log masuk

2. Menyahpepijat Isu CORS

Jika anda menghadapi isu CORS, ikut langkah ini untuk nyahpepijat dan menyelesaikannya:

Semak Konfigurasi CORS

  • Sahkan Asal Dibenarkan: Pastikan sifat asal dalam konfigurasi app.enableCors termasuk domain aplikasi bahagian hadapan anda.
  • Kaedah dan Pengepala: Sahkan bahawa kaedah dan sifat Header yang dibenarkan ditetapkan dengan betul mengikut keperluan aplikasi bahagian hadapan anda.

Periksa Permintaan Rangkaian

  • Pelayar DevTools: Gunakan alatan pembangun penyemak imbas (biasanya ditemui di bawah tab "Rangkaian") untuk memeriksa pengepala permintaan dan respons. Cari Access-Control-Allow-Origin, Access-Control-Allow-Methods dan Access-Control-Allow-Headers dalam pengepala respons.
  • Permintaan Prapenerbangan: Jika anda menggunakan kaedah HTTP bukan standard atau pengepala tersuai, pastikan pelayan mengendalikan permintaan prapenerbangan dengan betul (permintaan OPTIONS).

Sahkan Log Pelayan

  • Log Konsol: Tambahkan log konsol pada kod sisi pelayan untuk mengesahkan sama ada permintaan sampai ke pelayan dan jika pengepala CORS digunakan dengan betul.
  • Mesej Ralat: Lihat log pelayan untuk sebarang ralat yang berkaitan dengan konfigurasi CORS.

Semak Konfigurasi Proksi

  • Pembangunan Tempatan: Jika anda menggunakan proksi untuk pembangunan setempat (cth., http-proxy-middleware dalam apl React), pastikan ia dikonfigurasikan dengan betul dan memajukan permintaan seperti yang diharapkan.
  • Pengepala Proksi: Pastikan proksi tidak mengubah suai atau menanggalkan sebarang pengepala CORS yang diperlukan.

Uji dengan cURL

  • Arahan cURL: Gunakan cURL untuk menguji titik akhir API secara langsung dan perhatikan jika pengepala CORS dikembalikan dengan betul. Ini boleh membantu mengasingkan sama ada isu itu adalah dengan konfigurasi bahagian hadapan atau bahagian belakang.
  curl -i -X OPTIONS http://localhost:3000/api/v1/resource -H "Origin: http://your-frontend-domain.com"
Salin selepas log masuk

Isu CORS Biasa

  • Asal Tidak Padan: Pastikan asal dalam permintaan sepadan dengan asal yang dinyatakan dalam konfigurasi CORS.
  • Pengepala Salah: Sahkan bahawa semua pengepala yang diperlukan disertakan dalam konfigurasi Pengepala yang dibenarkan.
  • Kelayakan Tiada: Jika bukti kelayakan terlibat (cth., kuki), pastikan kelayakan: benar ditetapkan dalam konfigurasi CORS.

Untuk menyelesaikan masalah, pengendalian isu CORS dalam aplikasi NestJS bermula untuk memastikan bahagian hadapan dan bahagian belakang anda berkomunikasi dengan kebenaran yang betul. Dengan menyediakan konfigurasi CORS yang betul, menyemak permintaan anda dan menyahpepijat dengan alat penyemak imbas dan bahagian belakang, anda boleh menyelesaikan kebanyakan isu yang datang kepada anda. Ingat, konfigurasi yang jelas dan tepat pada kedua-dua hujung adalah kunci kepada interaksi yang lancar. Teruskan mencuba dan memperhalusi persediaan anda sehingga semuanya berfungsi dengan lancar. Semoga berjaya dan selamat bersarang!!!

Atas ialah kandungan terperinci Mengendalikan dan menyahpepijat isu CORS (Cross-Origin Resource Sharing) dalam Aplikasi NestJS. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:dev.to
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan