>  기사  >  웹 프론트엔드  >  Node.js를 사용하여 도메인 간 요청을 허용하도록 설정하는 방법

Node.js를 사용하여 도메인 간 요청을 허용하도록 설정하는 방법

PHPz
PHPz원래의
2023-04-05 09:09:261841검색

Node.js는 서버 측 애플리케이션과 API를 구축하는 데 매우 널리 사용되는 JavaScript 런타임 환경입니다. CORS(Cross-Origin Resource Sharing)는 RESTful API를 기반으로 웹 애플리케이션을 구축하거나 JavaScript 애플리케이션을 개발할 때 필수적인 기능입니다. CORS를 사용하면 브라우저가 도메인 간 세부 정보를 모르거나 프록시 서버를 사용하지 않고도 다른 도메인 이름이나 다른 포트에서 리소스를 요청할 수 있습니다. 이 기사에서는 Node.js를 사용하여 교차 출처 요청을 허용하도록 설정하는 방법에 대해 설명합니다.

  1. 도메인 간 리소스 공유란 무엇입니까?

CORS(교차 원본 리소스 공유)는 웹 애플리케이션이 다양한 도메인 이름, 다양한 포트 또는 다양한 프로토콜의 리소스를 요청하고 응답할 수 있도록 하는 웹 애플리케이션의 보안 메커니즘입니다. 예를 들어, JavaScript 및 AJAX를 사용하여 한 도메인에서 다른 도메인으로 데이터를 요청하는 경우 교차 도메인 요청을 처리해야 합니다. 브라우저의 동일 출처 정책으로 인해 브라우저는 일반적으로 보안 위험이 있는 다른 도메인의 리소스 요청을 허용하지 않습니다.

  1. Node.js를 사용하여 도메인 간 요청을 허용하도록 설정

Node.js 환경에서는 CORS 모듈을 사용하여 도메인 간 요청을 허용하도록 설정할 수 있습니다. CORS 모듈은 도메인 간 요청을 처리하기 위한 미들웨어를 제공합니다. npm 명령을 사용하여 모듈을 설치할 수 있습니다.

npm install cors

설치 후 애플리케이션에서 CORS를 사용할 수 있습니다. 다음은 간단한 예입니다.

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');
});

위의 예에서는 Express 및 CORS 모듈을 도입하고 app.use(cors()) 문을 사용하여 Express 애플리케이션에서 CORS를 활성화했습니다. 이를 통해 각 요청을 개별적으로 처리할 필요 없이 모든 소스에서 GET, POST 등 유형의 요청을 수행할 수 있습니다. 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()

    고급 사용
    1. 더 많은 제어와 유연성이 필요한 경우 CORS 모듈에서 제공하는 구성 옵션을 사용할 수 있습니다. 다음은 일반적으로 사용되는 고급 설정입니다.

    origin: 허용되는 요청 소스를 지정합니다. 기본값은 *입니다. 즉, 모든 소스가 허용됩니다.

    🎜메서드: 허용되는 HTTP 요청 메서드를 지정합니다. 기본값은 'GET,HEAD,PUT,PATCH,POST,DELETE'입니다. 🎜🎜allowedHeaders: 허용되는 요청 헤더 배열을 지정합니다. 기본값은 빈 배열입니다. 즉, 모든 요청 헤더가 허용됩니다. 🎜🎜exposedHeaders: 클라이언트에 노출되는 응답 헤더의 배열을 지정합니다. 기본값은 빈 배열입니다. 🎜🎜credentials: 교차 도메인 쿠키 수신을 허용하도록 지정합니다. 기본값은 false입니다. 🎜🎜maxAge: 실행 전 요청의 유효 시간(초)을 지정합니다. 기본값은 86400(즉, 1일)입니다. 🎜🎜preflightContinue: 실행 전 요청 처리를 계속할지 여부를 지정합니다. 기본값은 false입니다. 🎜
🎜다음은 몇 가지 예입니다: 🎜rrreee🎜위 예에서는 cors()의 구성 옵션을 사용하여 허용된 요청 소스를 지정하고 교차 도메인 쿠키 수신을 허용했습니다. . 이러한 옵션은 사례별로 설정할 수 있습니다. 🎜🎜🎜요약🎜🎜🎜이 기사에서는 Node.js를 사용하여 도메인 간 요청을 허용하도록 설정하는 방법에 대해 논의했습니다. CORS는 도메인 간 요청을 허용하는 매우 중요한 웹 애플리케이션 보안 메커니즘으로, 웹 애플리케이션 간의 데이터 상호 작용을 더욱 간단하고 안전하게 만듭니다. Node.js를 사용하여 애플리케이션을 구축할 때 CORS 모듈을 사용하여 교차 출처 요청을 쉽게 처리할 수 있습니다. 🎜

위 내용은 Node.js를 사용하여 도메인 간 요청을 허용하도록 설정하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.