Apabila membuat permintaan merentas domain dalam persekitaran Node.js, konfigurasi khusus diperlukan untuk membuat permintaan diteruskan seperti biasa. Jadi, di manakah konfigurasi merentas domain dilakukan?
Pertama sekali, kita perlu memahami maksud permintaan merentas domain. Permintaan silang asal merujuk kepada permintaan yang dimulakan oleh klien apabila mengakses URL yang berbeza daripada sumber halaman semasa. Disebabkan sekatan dasar asal yang sama penyemak imbas, permintaan sedemikian dilarang dihantar. Oleh kerana Node.js boleh dijalankan sebagai pelayan web, ia juga memerlukan konfigurasi merentas domain untuk memenuhi keperluan khas.
Biasanya terdapat dua cara untuk melaksanakan konfigurasi merentas domain dalam Node.js, iaitu konfigurasi pada bahagian pelayan dan konfigurasi pada bahagian klien.
Dalam Node.js, anda boleh menggunakan modul cors
untuk mengkonfigurasi permintaan merentas domain. Sebelum menggunakan modul cors
, anda perlu memasangnya terlebih dahulu:
npm install cors
Selepas pemasangan selesai, anda hanya perlu memperkenalkan modul apabila menggunakannya:
const express = require('express'); const cors = require('cors'); const app = express(); app.use(cors()); // ...
Antaranya, app.use(cors())
bermaksud membenarkan akses daripada semua domain. Jika anda perlu membenarkan akses kepada domain tertentu, anda boleh menggunakan kaedah berikut:
const express = require('express'); const cors = require('cors'); const app = express(); const corsOptions = { origin: 'http://example.com' } app.use(cors(corsOptions)); // ...
Dalam contoh, corsOptions
menyatakan bahawa alamat http://example.com
dibenarkan untuk membuat permintaan merentas domain.
Jika anda perlu memulakan permintaan merentas domain dalam halaman klien, anda juga boleh menggunakan modul cors
untuk konfigurasi. Apabila menggunakan modul cors
pada klien, anda perlu memasangnya dahulu:
npm install cors
Selepas pemasangan selesai, anda boleh mengkonfigurasi perkara berikut dalam kod klien apabila menggunakannya:
const axios = require('axios'); const cors = require('cors'); const corsOptions = { origin: 'http://example.com' }; axios.defaults.headers.post['Content-Type'] = 'application/json;charset=UTF-8'; axios.defaults.headers.post['Access-Control-Allow-Origin'] = '*'; axios.defaults.headers.post['Access-Control-Allow-Headers'] = 'Content-Type,Content-Length, Authorization, Accept,X-Requested-With'; axios.defaults.headers.post['Access-Control-Allow-Methods'] = 'PUT,POST,GET,DELETE,OPTIONS'; const instance = axios.create({ baseURL: 'http://localhost:3000', timeout: 1000, }); instance.defaults.headers.post['Access-Control-Allow-Origin'] = '*'; instance.defaults.withCredentials = true; instance.defaults.transformRequest = [function(data) { data = JSON.stringify(data); return data; }]; instance.defaults.transformResponse = [function(data) { if (typeof data === 'string' && data.includes('{') && data.includes('}')) { data = JSON.parse(data); } return data; }]; instance.interceptors.request.use(function(config) { config.withCredentials = true; return config; }, function(error) { return Promise.reject(error); }); instance.interceptors.response.use(function(response) { return response; }, function(error) { return Promise.reject(error); }); instance.use(cors(corsOptions)); // ...
Antaranya, instance.use(cors(corsOptions))
bermaksud alamat http://example.com
dibenarkan untuk membuat permintaan merentas domain.
Ringkasnya, permintaan merentas domain dalam persekitaran Node.js boleh dikonfigurasikan di bahagian pelayan atau di bahagian klien. Ia adalah perlu untuk memilih kaedah yang sesuai untuk konfigurasi merentas domain mengikut senario sebenar.
Atas ialah kandungan terperinci Di mana untuk mengkonfigurasi domain silang nodejs. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!