Heim  >  Artikel  >  Web-Frontend  >  So richten Sie das Zulassen domänenübergreifender Anfragen mithilfe von Node.js ein

So richten Sie das Zulassen domänenübergreifender Anfragen mithilfe von Node.js ein

PHPz
PHPzOriginal
2023-04-05 09:09:261772Durchsuche

Node.js ist eine sehr beliebte JavaScript-Laufzeitumgebung zum Erstellen serverseitiger Anwendungen und APIs. Cross-Origin Resource Sharing (CORS) ist eine wesentliche Funktion beim Erstellen von Webanwendungen oder der Entwicklung von JavaScript-Anwendungen auf Basis von RESTful-APIs. CORS ermöglicht es Browsern, Ressourcen von verschiedenen Domänennamen oder verschiedenen Ports anzufordern, ohne die domänenübergreifenden Details zu kennen oder einen Proxyserver zu verwenden. In diesem Artikel besprechen wir, wie Sie mithilfe von Node.js das Zulassen von Cross-Origin-Anfragen einrichten.

  1. Was ist domänenübergreifende Ressourcenfreigabe?

Cross-Origin Resource Sharing (CORS) ist ein Sicherheitsmechanismus in Webanwendungen, der es Webanwendungen ermöglicht, Ressourcen von unterschiedlichen Domänennamen, unterschiedlichen Ports oder unterschiedlichen Protokollen anzufordern und darauf zu reagieren. Beispielsweise müssen domänenübergreifende Anfragen verarbeitet werden, wenn JavaScript und AJAX verwendet werden, um Daten von einer Domäne an eine andere anzufordern. Aufgrund der Same-Origin-Richtlinie des Browsers erlauben Browser normalerweise keine Anfragen nach Ressourcen von anderen Domänen, was ein Sicherheitsrisiko darstellt.

  1. Verwenden Sie Node.js, um domänenübergreifende Anfragen zuzulassen.

In der Node.js-Umgebung können wir das CORS-Modul verwenden, um domänenübergreifende Anfragen zuzulassen. Das CORS-Modul stellt eine Middleware zur Verarbeitung domänenübergreifender Anforderungen bereit. Das Modul kann mit dem npm-Befehl installiert werden:

npm install cors

Nach der Installation können wir CORS in der Anwendung verwenden. Hier ist ein einfaches Beispiel:

const express = require('express');
const cors = require('cors');
const app = express();

app.use(cors());

app.get('/api/data', (req, res) => {
  // 处理 GET 请求
});

app.post('/api/data', (req, res) => {
  // 处理 POST 请求
});

app.listen(3000, () => {
  console.log('Server is listening on port 3000');
});

Im obigen Beispiel haben wir Express- und CORS-Module eingeführt und CORS in der Express-Anwendung mithilfe der Anweisung app.use(cors()) aktiviert. Dadurch können Anfragen vom Typ GET, POST usw. aus jeder Quelle gestellt werden, ohne dass jede Anfrage einzeln bearbeitet werden muss. app.use(cors()) 语句在 Express 应用程序中启用 CORS。这允许从任何来源发起 GET、POST 等类型的请求,而不需要对每个请求进行单独处理。

  1. 高级用法

如果需要更多的控制权和灵活性,我们可以使用 CORS 模块提供的配置选项。以下是一些常用的高级设置:

  • origin:指定允许的请求来源,默认为 *,即所有来源均可。
  • methods:指定允许的 HTTP 请求方法,默认为 'GET,HEAD,PUT,PATCH,POST,DELETE'
  • allowedHeaders:指定允许的请求头数组,默认为空数组,即所有请求头均可。
  • exposedHeaders:指定暴露给客户端的响应头数组,默认为空数组。
  • credentials:指定允许接收跨域 cookie,默认为 false。
  • maxAge:指定预检请求的有效时间(秒),默认为 86400(即一天)。
  • preflightContinue:指定是否继续处理预检请求,默认为 false。

以下是一些示例:

const express = require('express');
const cors = require('cors');
const app = express();

app.use(cors({
  origin: 'http://localhost:8080',
  methods: ['GET', 'POST'],
  allowedHeaders: ['Content-Type', 'Authorization'],
  exposedHeaders: ['Content-Length', 'X-Foo', 'X-Bar'],
  credentials: true,
  maxAge: 86400,
  preflightContinue: false
}));

app.get('/api/data', (req, res) => {
  // 处理 GET 请求
});

app.post('/api/data', (req, res) => {
  // 处理 POST 请求
});

app.listen(3000, () => {
  console.log('Server is listening on port 3000');
});

在以上示例中,我们使用了 cors()

    Erweiterte Nutzung
    1. Wenn Sie mehr Kontrolle und Flexibilität benötigen, können wir die Konfigurationsmöglichkeiten des CORS-Moduls nutzen. Im Folgenden sind einige häufig verwendete erweiterte Einstellungen aufgeführt:

    origin: Geben Sie die zulässigen Anforderungsquellen an. Der Standardwert ist *, d. h. alle Quellen sind akzeptabel.

    🎜Methoden: Geben Sie die zulässigen HTTP-Anforderungsmethoden an. Der Standardwert ist 'GET,HEAD,PUT,PATCH,POST,DELETE'. 🎜🎜allowedHeaders: Geben Sie das zulässige Anforderungsheader-Array an. Der Standardwert ist ein leeres Array, d. h. alle Anforderungsheader sind akzeptabel. 🎜🎜exposedHeaders: Geben Sie das Array der Antwortheader an, die dem Client angezeigt werden. Der Standardwert ist ein leeres Array. 🎜🎜Anmeldeinformationen: Geben Sie an, dass der Empfang domänenübergreifender Cookies zugelassen werden soll. Der Standardwert ist „false“. 🎜🎜maxAge: Gibt die Gültigkeitsdauer (in Sekunden) der Preflight-Anfrage an, der Standardwert ist 86400 (d. h. ein Tag). 🎜🎜preflightContinue: Gibt an, ob mit der Verarbeitung von Preflight-Anfragen fortgefahren werden soll. Der Standardwert ist „false“. 🎜
🎜Hier sind einige Beispiele: 🎜rrreee🎜Im obigen Beispiel haben wir die Konfigurationsoptionen von cors() verwendet, um die zulässigen Anforderungsquellen anzugeben, den Empfang domänenübergreifender Cookies zuzulassen usw . Diese Optionen können von Fall zu Fall festgelegt werden. 🎜🎜🎜Zusammenfassung🎜🎜🎜In diesem Artikel haben wir besprochen, wie man das Zulassen domänenübergreifender Anfragen mithilfe von Node.js einrichtet. CORS ist ein sehr wichtiger Sicherheitsmechanismus für Webanwendungen, der domänenübergreifende Anforderungen ermöglicht und so die Dateninteraktion zwischen Webanwendungen einfacher und sicherer macht. Beim Erstellen von Anwendungen mit Node.js können wir das CORS-Modul verwenden, um ursprungsübergreifende Anforderungen einfach zu verarbeiten. 🎜

Das obige ist der detaillierte Inhalt vonSo richten Sie das Zulassen domänenübergreifender Anfragen mithilfe von Node.js ein. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn