Maison interface Web Questions et réponses frontales Un article présentant la méthode de paramétrage inter-domaines de Node.js

Un article présentant la méthode de paramétrage inter-domaines de Node.js

Apr 05, 2023 am 09:09 AM

Avec le développement d'Internet, la tendance à la séparation du front-end et du back-end devient de plus en plus évidente. Dans le développement de la séparation front-end et back-end, lorsque la page front-end demande l'interface API back-end, cela provoque de nombreux désagréments en raison de problèmes inter-domaines. Cet article présentera la méthode de configuration inter-domaines de Node.js.

1. Qu'est-ce que le cross-domain

1.1 Qu'est-ce que la politique de même origine

Dans le domaine de la sécurité Web, la politique de même origine fait référence à ce qui suit : le protocole, le nom de domaine et le numéro de port doivent être complètement cohérent afin d’accéder à une autre source à partir d’un document source. En termes simples, le JavaScript de la page ne peut lire et exploiter que des documents provenant de la même source que lui.

1.2 Qu'est-ce que le cross-domain ?

Supposons que la page Web sous le nom de domaine A accède aux ressources sous le nom de domaine B via un script. Cette situation est appelée cross-domain.

2. Paramètres Node.js inter-domaines

2.1 Installer le module Cors

Cors est un module Node.js qui permet un accès inter-domaine. Tant que vous l'installez, vous pouvez facilement résoudre les problèmes inter-domaines.

npm install cors

2.2 Utilisation du module Cors dans Node.js

Dans le framework Express, l'utilisation directe de cors peut résoudre des problèmes inter-domaines.

const express = require('express');
const cors = require('cors');
const app = express();
app.use(cors());
Copier après la connexion

Le code ci-dessus activera CORS pour toutes les routes du projet. Si vous souhaitez l'activer uniquement dans une route spécifique, vous pouvez utiliser le code suivant :

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);
Copier après la connexion

2.3 Paramètres inter-domaines personnalisés

Si vous en voulez plus. paramètres inter-domaines détaillés, vous pouvez personnaliser à l’aide de diverses options de cors. Voici quelques options couramment utilisées :

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));
Copier après la connexion

3. Résumé

Node.js fournit le module cors, qui peut facilement résoudre les problèmes inter-domaines. Dans le framework Express, CORS peut être activé avec une seule ligne de code. Dans le même temps, les paramètres inter-domaines peuvent également être personnalisés pour répondre à des besoins plus flexibles.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Article chaud

Repo: Comment relancer ses coéquipiers
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Combien de temps faut-il pour battre Split Fiction?
3 Il y a quelques semaines By DDD
R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
1 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Comment obtenir des graines géantes
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Article chaud

Repo: Comment relancer ses coéquipiers
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Combien de temps faut-il pour battre Split Fiction?
3 Il y a quelques semaines By DDD
R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
1 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Comment obtenir des graines géantes
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Tags d'article chaud

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Expliquez le concept de chargement paresseux. Expliquez le concept de chargement paresseux. Mar 13, 2025 pm 07:47 PM

Expliquez le concept de chargement paresseux.

Qu'est-ce que l'utilisation Effecte? Comment l'utilisez-vous pour effectuer des effets secondaires? Qu'est-ce que l'utilisation Effecte? Comment l'utilisez-vous pour effectuer des effets secondaires? Mar 19, 2025 pm 03:58 PM

Qu'est-ce que l'utilisation Effecte? Comment l'utilisez-vous pour effectuer des effets secondaires?

Comment fonctionne le currying en JavaScript et quels sont ses avantages? Comment fonctionne le currying en JavaScript et quels sont ses avantages? Mar 18, 2025 pm 01:45 PM

Comment fonctionne le currying en JavaScript et quels sont ses avantages?

Comment fonctionne l'algorithme de réconciliation React? Comment fonctionne l'algorithme de réconciliation React? Mar 18, 2025 pm 01:58 PM

Comment fonctionne l'algorithme de réconciliation React?

Quelles sont les fonctions d'ordre supérieur en JavaScript, et comment peuvent-ils être utilisés pour écrire du code plus concis et réutilisable? Quelles sont les fonctions d'ordre supérieur en JavaScript, et comment peuvent-ils être utilisés pour écrire du code plus concis et réutilisable? Mar 18, 2025 pm 01:44 PM

Quelles sont les fonctions d'ordre supérieur en JavaScript, et comment peuvent-ils être utilisés pour écrire du code plus concis et réutilisable?

Comment empêchez-vous le comportement par défaut dans les gestionnaires d'événements? Comment empêchez-vous le comportement par défaut dans les gestionnaires d'événements? Mar 19, 2025 pm 04:10 PM

Comment empêchez-vous le comportement par défaut dans les gestionnaires d'événements?

Quels sont les avantages et les inconvénients des composants contrôlés et incontrôlés? Quels sont les avantages et les inconvénients des composants contrôlés et incontrôlés? Mar 19, 2025 pm 04:16 PM

Quels sont les avantages et les inconvénients des composants contrôlés et incontrôlés?

Qu'est-ce que UseContext? Comment l'utilisez-vous pour partager l'état entre les composants? Qu'est-ce que UseContext? Comment l'utilisez-vous pour partager l'état entre les composants? Mar 19, 2025 pm 03:59 PM

Qu'est-ce que UseContext? Comment l'utilisez-vous pour partager l'état entre les composants?

See all articles