Artikel yang memperkenalkan kaedah tetapan merentas domain Node.js

PHPz
Lepaskan: 2023-04-05 09:43:10
asal
2317 orang telah melayarinya

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());
Salin selepas log masuk

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);
Salin selepas log masuk

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));
Salin selepas log masuk

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!

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
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!