Rumah > hujung hadapan web > Soal Jawab bahagian hadapan > Cara menyediakan membenarkan permintaan merentas domain menggunakan Node.js

Cara menyediakan membenarkan permintaan merentas domain menggunakan Node.js

PHPz
Lepaskan: 2023-04-05 09:40:27
asal
1873 orang telah melayarinya

Node.js ialah persekitaran masa jalan JavaScript yang sangat popular untuk membina aplikasi dan API sebelah pelayan. Perkongsian Sumber Silang Asal (CORS) ialah ciri penting semasa membina aplikasi web atau membangunkan aplikasi JavaScript berdasarkan API RESTful. CORS membenarkan pelayar meminta sumber daripada nama domain yang berbeza atau port yang berbeza tanpa mengetahui butiran merentas domain atau menggunakan pelayan proksi. Dalam artikel ini, kita akan membincangkan cara menyediakan permintaan silang asal menggunakan Node.js.

  1. Apakah perkongsian sumber merentas domain?

Perkongsian sumber silang asal (CORS) ialah mekanisme keselamatan dalam aplikasi web yang membolehkan aplikasi web meminta dan membalas sumber daripada nama domain yang berbeza, port yang berbeza atau protokol yang berbeza. Sebagai contoh, permintaan merentas domain mesti dikendalikan apabila menggunakan JavaScript dan AJAX untuk meminta data dari satu domain ke domain yang lain. Disebabkan dasar asal yang sama penyemak imbas, penyemak imbas biasanya tidak membenarkan permintaan untuk sumber daripada domain lain, yang merupakan risiko keselamatan.

  1. Gunakan tetapan Node.js untuk membenarkan permintaan merentas domain

Dalam persekitaran Node.js, kami boleh menggunakan modul CORS untuk menyediakan untuk membenarkan merentas domain permintaan. Modul CORS menyediakan perisian tengah untuk mengendalikan permintaan merentas domain, yang boleh dipasang menggunakan arahan npm:

npm install cors
Salin selepas log masuk

Selepas pemasangan, kami boleh menggunakan CORS dalam aplikasi kami. Berikut ialah contoh mudah:

const express = require('express');
const cors = require('cors');
const app = express();

app.use(cors());

app.get('/api/data', (req, res) => {
  // 处理 GET 请求
});

app.post('/api/data', (req, res) => {
  // 处理 POST 请求
});

app.listen(3000, () => {
  console.log('Server is listening on port 3000');
});
Salin selepas log masuk

Dalam contoh di atas, kami telah memperkenalkan modul Express dan CORS dan mendayakan CORS dalam aplikasi Express menggunakan pernyataan app.use(cors()). Ini membolehkan GET, POST, dsb. jenis permintaan dibuat daripada mana-mana sumber tanpa memerlukan setiap permintaan dikendalikan secara individu.

  1. Penggunaan Terperinci

Jika anda memerlukan lebih kawalan dan fleksibiliti, kami boleh menggunakan pilihan konfigurasi yang disediakan oleh modul CORS. Berikut ialah beberapa tetapan lanjutan yang biasa digunakan:

  • asal: Tentukan sumber permintaan yang dibenarkan, lalainya ialah *, iaitu semua sumber boleh diterima.
  • kaedah: Tentukan kaedah permintaan HTTP yang dibenarkan, lalainya ialah 'GET,HEAD,PUT,PATCH,POST,DELETE'.
  • allowedHeaders: Menentukan tatasusunan pengepala permintaan yang dibenarkan Lalai ialah tatasusunan kosong, iaitu, semua pengepala permintaan boleh diterima.
  • exposedHeaders: Menentukan tatasusunan pengepala respons yang terdedah kepada klien Lalai ialah tatasusunan kosong.
  • kelayakan: Menentukan untuk membenarkan menerima kuki merentas domain, lalainya adalah palsu.
  • maxAge: Menentukan masa sah (saat) permintaan prapenerbangan, lalai ialah 86400 (iaitu satu hari).
  • preflightContinue: Menentukan sama ada untuk meneruskan memproses permintaan prapenerbangan, lalainya adalah palsu.

Berikut ialah beberapa contoh:

const express = require('express');
const cors = require('cors');
const app = express();

app.use(cors({
  origin: 'http://localhost:8080',
  methods: ['GET', 'POST'],
  allowedHeaders: ['Content-Type', 'Authorization'],
  exposedHeaders: ['Content-Length', 'X-Foo', 'X-Bar'],
  credentials: true,
  maxAge: 86400,
  preflightContinue: false
}));

app.get('/api/data', (req, res) => {
  // 处理 GET 请求
});

app.post('/api/data', (req, res) => {
  // 处理 POST 请求
});

app.listen(3000, () => {
  console.log('Server is listening on port 3000');
});
Salin selepas log masuk

Dalam contoh di atas, kami menggunakan pilihan konfigurasi cors() untuk menentukan sumber permintaan yang dibenarkan, membenarkan menerima kuki merentas domain, dan lain-lain. Pilihan ini boleh ditetapkan berdasarkan kes demi kes.

  1. Ringkasan

Dalam artikel ini, kami membincangkan cara menyediakan membenarkan permintaan merentas domain menggunakan Node.js. CORS ialah mekanisme keselamatan aplikasi web yang sangat penting yang membenarkan permintaan merentas domain, menjadikan interaksi data antara aplikasi web lebih mudah dan selamat. Apabila membina aplikasi menggunakan Node.js, kami boleh menggunakan modul CORS untuk mengendalikan permintaan silang asal dengan mudah.

Atas ialah kandungan terperinci Cara menyediakan membenarkan permintaan merentas domain menggunakan Node.js. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
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