Rumah > Artikel > hujung hadapan web > Artikel yang memperkenalkan kaedah tetapan merentas domain Node.js
Dengan perkembangan Internet, trend pemisahan bahagian hadapan dan belakang semakin jelas. Dalam pembangunan pemisahan bahagian hadapan dan bahagian belakang, apabila halaman hujung hadapan meminta antara muka API bahagian belakang, ia menyebabkan banyak kesulitan disebabkan isu merentas domain. Artikel ini akan memperkenalkan kaedah persediaan merentas domain Node.js.
1. Apakah itu merentas domain
1.1 Apakah dasar asal yang sama
Dalam bidang keselamatan Web, dasar asal yang sama merujuk kepada: protokol, nama domain dan nombor port mestilah Dokumen daripada satu sumber boleh diakses daripada sumber lain hanya jika ia betul-betul sama. Ringkasnya, JavaScript dalam halaman hanya boleh membaca dan mengendalikan dokumen daripada sumber yang sama seperti dirinya.
1.2 Apakah itu merentas domain
Andaikan bahawa halaman web di bawah nama domain A mengakses sumber di bawah nama domain B melalui skrip.
2. Tetapan Node.js untuk merentas domain
2.1 Pasang modul Cors
Cors ialah modul Node.js yang membenarkan akses merentas domain. Selagi anda memasangnya, anda boleh menyelesaikan masalah merentas domain dengan mudah.
npm install cors
2.2 Menggunakan modul Cors dalam Node.js
Dalam rangka kerja Express, menggunakan cors secara langsung boleh menyelesaikan masalah merentas domain.
const express = require('express'); const cors = require('cors'); const app = express(); app.use(cors());
Kod di atas akan membolehkan CORS untuk semua laluan dalam projek Jika anda hanya mahu mendayakannya dalam laluan tertentu, anda boleh menggunakan kod berikut:
const express = require('express'); const cors = require('cors'); const app = express(); const router = express.Router(); const corsOptions = { origin: 'http://example.com', // 允许访问的域名 optionsSuccessStatus: 200 // some legacy browsers (IE11, various SmartTVs) choke on 204 }; router.get('/', cors(corsOptions), function(req, res) { //... }); app.use('/', router);
2.3 Tetapan merentas domain tersuai
Jika anda mahukan tetapan merentas domain yang lebih terperinci, anda boleh menggunakan pelbagai pilihan kor untuk menyesuaikan. Berikut ialah beberapa pilihan yang biasa digunakan:
const corsOptions = { origin: 'http://example.com', // String: 允许访问的域名,可以是字符串或正则表达式 methods: ['GET', 'POST'], // Array: 允许的HTTP请求方法 allowedHeaders: ['Content-Type'], // Array: 允许使用的自定义Header exposedHeaders: ['Content-Type'], // Array: 允许客户端访问的响应头 credentials: true, // Boolean: 是否发送Cookies maxAge: 86400 // Number: 预检请求缓存时间,单位秒 }; app.use(cors(corsOptions));
3 Ringkasan
Node.js menyediakan modul cors, yang boleh menyelesaikan masalah merentas domain dengan mudah. Dalam rangka kerja Express, CORS boleh dihidupkan dengan hanya satu baris kod. Pada masa yang sama, tetapan merentas domain juga boleh disesuaikan untuk memenuhi keperluan yang lebih fleksibel.
Atas ialah kandungan terperinci Artikel yang memperkenalkan kaedah tetapan merentas domain Node.js. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!