Rumah  >  Artikel  >  hujung hadapan web  >  Nodejs melaksanakan merentas domain

Nodejs melaksanakan merentas domain

WBOY
WBOYasal
2023-05-25 13:38:381621semak imbas

Cross-domain bermakna bahawa dokumen atau skrip dalam satu domain cuba meminta sumber dalam domain lain. Dalam kes ini, masalah merentas domain akan berlaku untuk memastikan keselamatan aplikasi web setakat yang mungkin. Iaitu, skrip klien dalam domain yang berbeza tidak boleh membaca atau menulis kandungan dokumen satu sama lain tanpa kebenaran yang jelas.

Node.js ialah persekitaran masa jalan JavaScript sebelah pelayan yang popular yang memudahkan untuk mencipta aplikasi web. Dalam Node.js, kami boleh menggunakan berbilang kaedah untuk mengendalikan permintaan merentas domain. Berikut ialah beberapa kaedah pemprosesan merentas domain yang biasa:

1 Gunakan CORS

CORS ialah singkatan daripada "Perkongsian Sumber merentas domain Ia adalah penyelesaian merentas domain yang standard". pelayan untuk Menghantar maklumat kebenaran kepada klien supaya klien boleh mengakses sumber dalam domain lain. Dalam Node.js, permintaan merentas domain boleh dicapai dengan menggunakan CORS.

Amat mudah untuk menggunakan CORS untuk menyelesaikan masalah merentas domain dalam Node.js Anda hanya perlu memasang dan menggunakan modul cors adalah seperti berikut:

const express = require('express');
const cors = require('cors');
const app = express();
 
app.use(cors());
 
app.get('/api/data', function (req, res) {
  // 处理请求
});
 
app.listen(3000, function () {
  console.log('Server listening on port 3000');
});

2 . Gunakan JSONP

JSONP ialah teknologi lama yang digunakan untuk menyelesaikan masalah merentas domain Ia mengambil kesempatan daripada ciri merentas domain atribut src dalam teg HTML dan secara tidak langsung memperoleh domain lain dengan menghasilkan teg skrip secara dinamik. dan menetapkan data atribut srcnya di bawah. Dalam Node.js, permintaan merentas domain boleh dicapai dengan menggunakan JSONP Kod sampel adalah seperti berikut:

const express = require('express');
const app = express();
 
app.get('/api/data', function (req, res) {
  const callback = req.query.callback;
  // 处理请求
  res.send(callback + '(' + JSON.stringify(data) + ');');
});
 
app.listen(3000, function () {
  console.log('Server listening on port 3000');
});

3 Menggunakan pelayan proksi

Pelayan proksi ialah cara untuk memindahkan permintaan pelanggan kepada pelayan Pelayan yang dimajukan ke pelayan lain, dengan menggunakan pelayan proksi, boleh memajukan permintaan pelanggan kepada sumber dalam domain lain di bahagian pelayan, dengan itu mencapai tujuan merentas domain. Dalam Node.js, anda boleh menggunakan http-proxy-middleware untuk membina pelayan proksi Kod sampel adalah seperti berikut:

const express = require('express');
const { createProxyMiddleware } = require('http-proxy-middleware');
const app = express();
 
app.use('/api', createProxyMiddleware({
  target: 'http://example.com',
  changeOrigin: true,
}));
 
app.listen(3000, function () {
  console.log('Server listening on port 3000');
});

Ringkasan

Terdapat banyak cara untuk melaksanakan merentas domain dalam. Node.js , dengan menggunakan CORS adalah penyelesaian yang lebih mudah dan standard, manakala menggunakan JSONP dan pelayan proksi adalah penyelesaian yang kurang digunakan tetapi masih boleh dilaksanakan. Penyelesaian yang mana untuk digunakan boleh dipilih berdasarkan keperluan dan senario tertentu, tetapi perlu diingat bahawa operasi merentas domain boleh menjejaskan keselamatan aplikasi web, jadi anda perlu beroperasi dengan berhati-hati.

Atas ialah kandungan terperinci Nodejs melaksanakan merentas domain. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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
Artikel sebelumnya:Cara menggunakan acara vueArtikel seterusnya:Cara menggunakan acara vue